libnfs: Add lutimes
[deb_libnfs.git] / lib / libnfs-sync.c
index 39c68c6bf6fb12b0a345c839e79e2f09989ffe7f..fe1e063153d73fba48216acef7992d3398ac780a 100644 (file)
@@ -268,6 +268,23 @@ int nfs_stat64(struct nfs_context *nfs, const char *path, struct nfs_stat_64 *st
        return cb_data.status;
 }
 
+int nfs_lstat64(struct nfs_context *nfs, const char *path, struct nfs_stat_64 *st)
+{
+       struct sync_cb_data cb_data;
+
+       cb_data.is_finished = 0;
+       cb_data.return_data = st;
+
+       if (nfs_lstat64_async(nfs, path, stat64_cb, &cb_data) != 0) {
+               nfs_set_error(nfs, "nfs_lstat64_async failed");
+               return -1;
+       }
+
+       wait_for_nfs_reply(nfs, &cb_data);
+
+       return cb_data.status;
+}
+
 /*
  * open()
  */
@@ -453,6 +470,26 @@ int nfs_fstat(struct nfs_context *nfs, struct nfsfh *nfsfh, struct stat *st)
        return cb_data.status;
 }
 
+/*
+ * fstat64()
+ */
+int nfs_fstat64(struct nfs_context *nfs, struct nfsfh *nfsfh, struct nfs_stat_64 *st)
+{
+       struct sync_cb_data cb_data;
+
+       cb_data.is_finished = 0;
+       cb_data.return_data = st;
+
+       if (nfs_fstat64_async(nfs, nfsfh, stat64_cb, &cb_data) != 0) {
+               nfs_set_error(nfs, "nfs_fstat64_async failed");
+               return -1;
+       }
+
+       wait_for_nfs_reply(nfs, &cb_data);
+
+       return cb_data.status;
+}
+
 
 /*
  * pwrite()
@@ -1048,6 +1085,25 @@ int nfs_chown(struct nfs_context *nfs, const char *path, int uid, int gid)
        return cb_data.status;
 }
 
+/*
+ * lchown()
+ */
+int nfs_lchown(struct nfs_context *nfs, const char *path, int uid, int gid)
+{
+       struct sync_cb_data cb_data;
+
+       cb_data.is_finished = 0;
+
+       if (nfs_lchown_async(nfs, path, uid, gid, chown_cb, &cb_data) != 0) {
+               nfs_set_error(nfs, "nfs_lchown_async failed");
+               return -1;
+       }
+
+       wait_for_nfs_reply(nfs, &cb_data);
+
+       return cb_data.status;
+}
+
 /*
  * fchown()
  */
@@ -1114,6 +1170,22 @@ int nfs_utimes(struct nfs_context *nfs, const char *path, struct timeval *times)
        return cb_data.status;
 }
 
+int nfs_lutimes(struct nfs_context *nfs, const char *path, struct timeval *times)
+{
+       struct sync_cb_data cb_data;
+
+       cb_data.is_finished = 0;
+
+       if (nfs_lutimes_async(nfs, path, times, utimes_cb, &cb_data) != 0) {
+               nfs_set_error(nfs, "nfs_lutimes_async failed");
+               return -1;
+       }
+
+       wait_for_nfs_reply(nfs, &cb_data);
+
+       return cb_data.status;
+}
+
 
 
 /*