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()
*nfsfh = fh;
}
-int nfs_creat(struct nfs_context *nfs, const char *path, int mode, struct nfsfh **nfsfh)
+int nfs_create(struct nfs_context *nfs, const char *path, int flags, int mode, struct nfsfh **nfsfh)
{
struct sync_cb_data cb_data;
cb_data.is_finished = 0;
cb_data.return_data = nfsfh;
- if (nfs_creat_async(nfs, path, mode, creat_cb, &cb_data) != 0) {
- nfs_set_error(nfs, "nfs_creat_async failed");
+ if (nfs_create_async(nfs, path, flags, mode, creat_cb, &cb_data) != 0) {
+ nfs_set_error(nfs, "nfs_create_async failed");
return -1;
}
return cb_data.status;
}
+int nfs_creat(struct nfs_context *nfs, const char *path, int mode, struct nfsfh **nfsfh)
+{
+ return nfs_create(nfs, path, 0, mode, nfsfh);
+}
+
/*
* mknod()
*/
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()
*/