diff options
| author | Trond Myklebust <trond.myklebust@fys.uio.no> | 2002-07-28 02:45:57 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-07-28 02:45:57 -0700 |
| commit | c385d3e11995b638e5e6d26b26125d372a0fbf4a (patch) | |
| tree | 15ab1dee3475d97f3211d7651178c03ce27c697f /include | |
| parent | 002d79116b97d3f43dfc6ac2984205d46d9d4302 (diff) | |
[PATCH] Support for cached lookups via readdirplus [3/6]
Cache the information about whether or not the server supports
READDIRPLUS.
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/nfs_fs.h | 11 | ||||
| -rw-r--r-- | include/linux/nfs_fs_sb.h | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 02ef81aee197..16b3e1be73e3 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -225,8 +225,15 @@ do { \ #define NFS_FILEID(inode) (NFS_I(inode)->fileid) -/* Inode Flags */ -#define NFS_USE_READDIRPLUS(inode) ((NFS_FLAGS(inode) & NFS_INO_ADVISE_RDPLUS) ? 1 : 0) +static inline int nfs_server_capable(struct inode *inode, int cap) +{ + return NFS_SERVER(inode)->caps & cap; +} + +static inline int NFS_USE_READDIRPLUS(struct inode *inode) +{ + return NFS_FLAGS(inode) & NFS_INO_ADVISE_RDPLUS; +} static inline loff_t page_offset(struct page *page) diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index f1cd15d924dc..080c98fed1dd 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h @@ -10,6 +10,7 @@ struct nfs_server { struct rpc_clnt * client; /* RPC client handle */ struct nfs_rpc_ops * rpc_ops; /* NFS protocol vector */ int flags; /* various flags */ + unsigned int caps; /* server capabilities */ unsigned int rsize; /* read size */ unsigned int rpages; /* read size (in pages) */ unsigned int wsize; /* write size */ @@ -31,4 +32,7 @@ struct nfs_server { struct sockaddr_in addr; }; +/* Server capabilities */ +#define NFS_CAP_READDIRPLUS (1) + #endif |
