uint64_t nfs_atime;
uint64_t nfs_mtime;
uint64_t nfs_ctime;
+ uint64_t nfs_atime_nsec;
+ uint64_t nfs_mtime_nsec;
+ uint64_t nfs_ctime_nsec;
+ uint64_t nfs_used;
};
/*
* -errno : An error occured.
* data is the error string.
*/
+/* This function is deprecated. Use nfs_fstat64_async() instead */
EXTERN int nfs_fstat_async(struct nfs_context *nfs, struct nfsfh *nfsfh, nfs_cb cb, void *private_data);
/*
* Sync fstat(nfsfh *)
EXTERN int nfs_fstat(struct nfs_context *nfs, struct nfsfh *nfsfh, struct stat *st);
#endif
+/* nfs_fstat64
+ * 64 bit version of fstat. All fields are always 64bit.
+ * Use these functions instead of nfs_fstat[_async](), especially if you
+ * have weird stat structures.
+ */
+/*
+ * FSTAT()
+ */
+/*
+ * Async fstat(nfsfh *)
+ * Function returns
+ * 0 : The operation was initiated. Once the operation finishes, the callback will be invoked.
+ * <0 : An error occured when trying to set up the operation. The callback will not be invoked.
+ *
+ * When the callback is invoked, status indicates the result:
+ * 0 : Success.
+ * data is struct stat *
+ * -errno : An error occured.
+ * data is the error string.
+ */
+EXTERN int nfs_fstat64_async(struct nfs_context *nfs, struct nfsfh *nfsfh, nfs_cb cb, void *private_data);
+/*
+ * Sync fstat(nfsfh *)
+ * Function returns
+ * 0 : The operation was successfull.
+ * -errno : The command failed.
+ */
+EXTERN int nfs_fstat64(struct nfs_context *nfs, struct nfsfh *nfsfh, struct nfs_stat_64 *st);
+
/*
* Async open(<filename>)
*
* mode is a combination of the flags :
- * O_RDOLNY, O_WRONLY, O_RDWR , O_SYNC, O_APPEND
+ * O_RDOLNY, O_WRONLY, O_RDWR , O_SYNC, O_APPEND, O_TRUNC
*
* Function returns
* 0 : The operation was initiated. Once the operation finishes, the callback will be invoked.
* O_RDONLY
* O_WRONLY
* O_RDWR
+ * O_SYNC
* O_TRUNC (Only valid with O_RDWR or O_WRONLY. Ignored otherwise.)
*
* When the callback is invoked, status indicates the result:
* O_APPEND
* O_SYNC
* O_EXCL
+ * O_TRUNC
*
* Function returns
* 0 : The operation was initiated. Once the operation finishes, the callback will be invoked.
uint32_t uid;
uint32_t gid;
uint32_t nlink;
+ uint64_t dev;
+ uint64_t rdev;
+ uint64_t blksize;
+ uint64_t blocks;
+ uint64_t used;
+ uint32_t atime_nsec;
+ uint32_t mtime_nsec;
+ uint32_t ctime_nsec;
};
/*
* nfs_readdir() never blocks, so no special sync/async versions are available
* -errno : The command failed.
*/
EXTERN int nfs_chown(struct nfs_context *nfs, const char *path, int uid, int gid);
+/*
+ * Async chown(<name>)
+ *
+ * Like chown except if the destination is a symbolic link, it acts on the
+ * symbolic link itself.
+ *
+ * Function returns
+ * 0 : The operation was initiated. Once the operation finishes, the callback will be invoked.
+ * <0 : An error occured when trying to set up the operation. The callback will not be invoked.
+ *
+ * When the callback is invoked, status indicates the result:
+ * 0 : Success.
+ * data is NULL
+ * -errno : An error occured.
+ * data is the error string.
+ */
+EXTERN int nfs_lchown_async(struct nfs_context *nfs, const char *path, int uid, int gid, nfs_cb cb, void *private_data);
+/*
+ * Sync chown(<name>)
+ *
+ * Like chown except if the destination is a symbolic link, it acts on the
+ * symbolic link itself.
+ *
+ * Function returns
+ * 0 : The operation was successfull.
+ * -errno : The command failed.
+ */
+EXTERN int nfs_lchown(struct nfs_context *nfs, const char *path, int uid, int gid);