NFS: readdir with vmapped pages
We can use vmapped pages to read more information from the network at once. This will reduce the number of calls needed to complete a readdir. Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> [trondmy: Added #include for linux/vmalloc.h> in fs/nfs/dir.c] Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
committed by
Trond Myklebust
parent
afa8ccc978
commit
56e4ebf877
@ -2823,12 +2823,12 @@ static int nfs4_proc_mkdir(struct inode *dir, struct dentry *dentry,
|
||||
}
|
||||
|
||||
static int _nfs4_proc_readdir(struct dentry *dentry, struct rpc_cred *cred,
|
||||
u64 cookie, struct page *page, unsigned int count, int plus)
|
||||
u64 cookie, struct page **pages, unsigned int count, int plus)
|
||||
{
|
||||
struct inode *dir = dentry->d_inode;
|
||||
struct nfs4_readdir_arg args = {
|
||||
.fh = NFS_FH(dir),
|
||||
.pages = &page,
|
||||
.pages = pages,
|
||||
.pgbase = 0,
|
||||
.count = count,
|
||||
.bitmask = NFS_SERVER(dentry->d_inode)->attr_bitmask,
|
||||
@ -2859,14 +2859,14 @@ static int _nfs4_proc_readdir(struct dentry *dentry, struct rpc_cred *cred,
|
||||
}
|
||||
|
||||
static int nfs4_proc_readdir(struct dentry *dentry, struct rpc_cred *cred,
|
||||
u64 cookie, struct page *page, unsigned int count, int plus)
|
||||
u64 cookie, struct page **pages, unsigned int count, int plus)
|
||||
{
|
||||
struct nfs4_exception exception = { };
|
||||
int err;
|
||||
do {
|
||||
err = nfs4_handle_exception(NFS_SERVER(dentry->d_inode),
|
||||
_nfs4_proc_readdir(dentry, cred, cookie,
|
||||
page, count, plus),
|
||||
pages, count, plus),
|
||||
&exception);
|
||||
} while (exception.retry);
|
||||
return err;
|
||||
|
Reference in New Issue
Block a user