#ifndef _NFS_FS_I #define _NFS_FS_I #include #include #include /* * nfs fs inode data in memory */ struct nfs_inode_info { /* * The 64bit 'inode number' */ __u64 fsid; __u64 fileid; /* * NFS file handle */ struct nfs_fh fh; /* * Various flags */ unsigned short flags; /* * read_cache_jiffies is when we started read-caching this inode, * and read_cache_mtime is the mtime of the inode at that time. * attrtimeo is for how long the cached information is assumed * to be valid. A successful attribute revalidation doubles * attrtimeo (up to acregmax/acdirmax), a failure resets it to * acregmin/acdirmin. * * We need to revalidate the cached attrs for this inode if * * jiffies - read_cache_jiffies > attrtimeo * * and invalidate any cached data/flush out any dirty pages if * we find that * * mtime != read_cache_mtime */ unsigned long read_cache_jiffies; __u64 read_cache_ctime; __u64 read_cache_mtime; __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. */ 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; /* Credentials for shared mmap */ struct rpc_cred *mm_cred; }; /* * Legal inode flag values */ #define NFS_INO_STALE 0x0001 /* possible stale inode */ #define NFS_INO_ADVISE_RDPLUS 0x0002 /* advise readdirplus */ #define NFS_INO_REVALIDATING 0x0004 /* revalidating attrs */ #define NFS_IS_SNAPSHOT 0x0010 /* a snapshot file */ #define NFS_INO_FLUSH 0x0020 /* inode is due for flushing */ /* * NFS lock info */ struct nfs_lock_info { u32 state; u32 flags; struct nlm_host *host; }; /* * Lock flag values */ #define NFS_LCK_GRANTED 0x0001 /* lock has been granted */ #define NFS_LCK_RECLAIM 0x0002 /* lock marked for reclaiming */ #endif