patch-2.2.18 linux/include/linux/nfs_fs_i.h

Next file: linux/include/linux/nfs_fs_sb.h
Previous file: linux/include/linux/nfs_fs.h
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/include/linux/nfs_fs_i.h linux/include/linux/nfs_fs_i.h
@@ -1,4 +1,4 @@
-#ifndef _NFS_FS_I
+#ifndef _NFS_FS_i
 #define _NFS_FS_I
 
 #include <linux/nfs.h>
@@ -16,6 +16,12 @@
 	struct pipe_inode_info	pipeinfo;
 
 	/*
+	 * The 64bit fileid
+	 */
+	__u64 fsid;
+	__u64 fileid;
+
+	/*
 	 * Various flags
 	 */
 	unsigned short		flags;
@@ -38,22 +44,68 @@
 	 *	mtime != read_cache_mtime
 	 */
 	unsigned long		read_cache_jiffies;
-	unsigned long		read_cache_mtime;
+	__u64			read_cache_ctime;
+	__u64			read_cache_mtime;
+	__u64			read_cache_atime;
+	__u64			read_cache_isize;
 	unsigned long		attrtimeo;
+	unsigned long		attrtimeo_timestamp;
+
+	/*
+	 * This is the cookie verifier used for NFSv3 readdir
+	 * operations
+	 */
+	__u32			cookieverf[2];
 
 	/*
-	 * This is the list of dirty unwritten pages.
-	 * NFSv3 will want to add a list for written but uncommitted
-	 * pages.
+	 * This is the list of dirty pages.
 	 */
-	struct nfs_wreq *	writeback;
+	struct list_head	read;
+	struct list_head	dirty;
+	struct list_head	commit;
+	struct list_head	writeback;
+
+	unsigned int		nread,
+				ndirty,
+				ncommit,
+				npages;
+
+	/* Flush daemon info */
+	struct inode		*hash_next,
+				*hash_prev;
+	unsigned long		nextscan;
 };
 
 /*
  * Legal inode flag values
  */
-#define NFS_INO_REVALIDATE	0x0001		/* revalidating attrs */
+#define NFS_INO_LOCKED          0x0001          /* locked for revalidation */
+#define NFS_INO_ADVISE_RDPLUS   0x0002          /* advise readdirplus */
+#define NFS_INO_REVALIDATING    0x0004          /* in nfs_revalidate() */
+#define NFS_INO_INVALIDATE      0x0008          /* zap cache on next occasion */
 #define NFS_IS_SNAPSHOT		0x0010		/* a snapshot file */
+#define NFS_INO_STALE		0x0020		/* We suspect inode is stale */
+#define NFS_INO_FLUSH		0x0040		/* inode is due for flushing */
+
+/*
+ * NFS ACL info.
+ * This information will be used by nfs_permission() in the obvious fashion,
+ * but also helps the RPC engine to select whether to try the operation first
+ * with the effective or real uid/gid first.
+ *
+ * For NFSv2, this info is obtained by just trying the operation in
+ * question and updating the ACL info according to the result.
+ * For NFSv3, the access() call is used to fill in the permission bits.
+ *
+ * Not yet used.
+ */
+struct nfs_acl_info {
+	struct nfs_acl_info *	acl_next;
+	unsigned long		acl_read_time;
+	uid_t			acl_uid;
+	gid_t			acl_gid;
+	unsigned int		acl_bits;
+};
 
 /*
  * NFS lock info
@@ -61,6 +113,7 @@
 struct nfs_lock_info {
 	u32		state;
 	u32		flags;
+	struct nlm_host	*host;
 };
 
 /*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)