mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
NFS: Configure support for netfs when NFS fscache is configured
As first steps for support of the netfs library when NFS_FSCACHE is configured, add NETFS_SUPPORT to Kconfig and add the required netfs_inode into struct nfs_inode. Using netfs requires we move the VFS inode structure to be stored inside struct netfs_inode, along with the fscache_cookie. Thus, if NFS_FSCACHE is configured, place netfs_inode inside an anonymous union so the vfs_inode memory is the same and we do not need to modify other non-fscache areas of NFS. In addition, inside the NFS fscache code, use the new helpers, netfs_inode() and netfs_i_cookie() helpers, and remove our own helper, nfs_i_fscache(). Later patches will convert NFS fscache to fully use netfs. Signed-off-by: Dave Wysochanski <dwysocha@redhat.com> Tested-by: Daire Byrne <daire@dneg.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
committed by
Anna Schumaker
parent
01c3a40084
commit
88a4d7bdee
@@ -31,6 +31,10 @@
|
||||
#include <linux/sunrpc/auth.h>
|
||||
#include <linux/sunrpc/clnt.h>
|
||||
|
||||
#ifdef CONFIG_NFS_FSCACHE
|
||||
#include <linux/netfs.h>
|
||||
#endif
|
||||
|
||||
#include <linux/nfs.h>
|
||||
#include <linux/nfs2.h>
|
||||
#include <linux/nfs3.h>
|
||||
@@ -204,14 +208,15 @@ struct nfs_inode {
|
||||
/* how many bytes have been written/read and how many bytes queued up */
|
||||
__u64 write_io;
|
||||
__u64 read_io;
|
||||
#ifdef CONFIG_NFS_FSCACHE
|
||||
struct fscache_cookie *fscache;
|
||||
#endif
|
||||
struct inode vfs_inode;
|
||||
|
||||
#ifdef CONFIG_NFS_V4_2
|
||||
struct nfs4_xattr_cache *xattr_cache;
|
||||
#endif
|
||||
union {
|
||||
struct inode vfs_inode;
|
||||
#ifdef CONFIG_NFS_FSCACHE
|
||||
struct netfs_inode netfs; /* netfs context and VFS inode */
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
struct nfs4_copy_state {
|
||||
@@ -329,15 +334,6 @@ static inline int NFS_STALE(const struct inode *inode)
|
||||
return test_bit(NFS_INO_STALE, &NFS_I(inode)->flags);
|
||||
}
|
||||
|
||||
static inline struct fscache_cookie *nfs_i_fscache(struct inode *inode)
|
||||
{
|
||||
#ifdef CONFIG_NFS_FSCACHE
|
||||
return NFS_I(inode)->fscache;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline __u64 NFS_FILEID(const struct inode *inode)
|
||||
{
|
||||
return NFS_I(inode)->fileid;
|
||||
|
||||
Reference in New Issue
Block a user