|
@@ -1,9 +1,58 @@
|
|
|
-/* Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de> */
|
|
|
+/*
|
|
|
+ * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de>
|
|
|
+ *
|
|
|
+ * This file describes the layout of the file handles as passed
|
|
|
+ * over the wire.
|
|
|
+ */
|
|
|
+#ifndef _LINUX_NFSD_NFSFH_H
|
|
|
+#define _LINUX_NFSD_NFSFH_H
|
|
|
+
|
|
|
+#include <linux/sunrpc/svc.h>
|
|
|
+#include <uapi/linux/nfsd/nfsfh.h>
|
|
|
+
|
|
|
+static inline __u32 ino_t_to_u32(ino_t ino)
|
|
|
+{
|
|
|
+ return (__u32) ino;
|
|
|
+}
|
|
|
+
|
|
|
+static inline ino_t u32_to_ino_t(__u32 uino)
|
|
|
+{
|
|
|
+ return (ino_t) uino;
|
|
|
+}
|
|
|
|
|
|
-#ifndef _LINUX_NFSD_FH_INT_H
|
|
|
-#define _LINUX_NFSD_FH_INT_H
|
|
|
+/*
|
|
|
+ * This is the internal representation of an NFS handle used in knfsd.
|
|
|
+ * pre_mtime/post_version will be used to support wcc_attr's in NFSv3.
|
|
|
+ */
|
|
|
+typedef struct svc_fh {
|
|
|
+ struct knfsd_fh fh_handle; /* FH data */
|
|
|
+ struct dentry * fh_dentry; /* validated dentry */
|
|
|
+ struct svc_export * fh_export; /* export pointer */
|
|
|
+ int fh_maxsize; /* max size for fh_handle */
|
|
|
+
|
|
|
+ unsigned char fh_locked; /* inode locked by us */
|
|
|
+ unsigned char fh_want_write; /* remount protection taken */
|
|
|
+
|
|
|
+#ifdef CONFIG_NFSD_V3
|
|
|
+ unsigned char fh_post_saved; /* post-op attrs saved */
|
|
|
+ unsigned char fh_pre_saved; /* pre-op attrs saved */
|
|
|
+
|
|
|
+ /* Pre-op attributes saved during fh_lock */
|
|
|
+ __u64 fh_pre_size; /* size before operation */
|
|
|
+ struct timespec fh_pre_mtime; /* mtime before oper */
|
|
|
+ struct timespec fh_pre_ctime; /* ctime before oper */
|
|
|
+ /*
|
|
|
+ * pre-op nfsv4 change attr: note must check IS_I_VERSION(inode)
|
|
|
+ * to find out if it is valid.
|
|
|
+ */
|
|
|
+ u64 fh_pre_change;
|
|
|
+
|
|
|
+ /* Post-op attributes saved in fh_unlock */
|
|
|
+ struct kstat fh_post_attr; /* full attrs after operation */
|
|
|
+ u64 fh_post_change; /* nfsv4 change; see above */
|
|
|
+#endif /* CONFIG_NFSD_V3 */
|
|
|
|
|
|
-#include <linux/nfsd/nfsfh.h>
|
|
|
+} svc_fh;
|
|
|
|
|
|
enum nfsd_fsid {
|
|
|
FSID_DEV = 0,
|
|
@@ -215,4 +264,4 @@ fh_unlock(struct svc_fh *fhp)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#endif /* _LINUX_NFSD_FH_INT_H */
|
|
|
+#endif /* _LINUX_NFSD_NFSFH_H */
|