mirror of https://gitee.com/openkylin/linux.git
NFS: Remove unnecessary kmap in nfs_readdir_xdr_to_array()
The kmapped pointer is only used once per loop to check if we need to exit. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Tested-by: Benjamin Coddington <bcodding@redhat.com> Tested-by: Dave Wysochanski <dwysocha@redhat.com>
This commit is contained in:
parent
3b2a09f127
commit
e762a63981
10
fs/nfs/dir.c
10
fs/nfs/dir.c
|
@ -759,7 +759,6 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *desc, struct page *page,
|
|||
struct page *pages[NFS_MAX_READDIR_PAGES];
|
||||
struct nfs_entry entry;
|
||||
struct file *file = desc->file;
|
||||
struct nfs_cache_array *array;
|
||||
int status = -ENOMEM;
|
||||
unsigned int array_size = ARRAY_SIZE(pages);
|
||||
|
||||
|
@ -778,11 +777,9 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *desc, struct page *page,
|
|||
goto out;
|
||||
}
|
||||
|
||||
array = kmap(page);
|
||||
|
||||
status = nfs_readdir_alloc_pages(pages, array_size);
|
||||
if (status < 0)
|
||||
goto out_release_array;
|
||||
goto out_release_label;
|
||||
do {
|
||||
unsigned int pglen;
|
||||
status = nfs_readdir_xdr_filler(pages, desc, &entry, file, inode);
|
||||
|
@ -797,11 +794,10 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *desc, struct page *page,
|
|||
}
|
||||
|
||||
status = nfs_readdir_page_filler(desc, &entry, pages, page, pglen);
|
||||
} while (!status && !nfs_readdir_array_is_full(array));
|
||||
} while (!status && nfs_readdir_page_needs_filling(page));
|
||||
|
||||
nfs_readdir_free_pages(pages, array_size);
|
||||
out_release_array:
|
||||
kunmap(page);
|
||||
out_release_label:
|
||||
nfs4_label_free(entry.label);
|
||||
out:
|
||||
nfs_free_fattr(entry.fattr);
|
||||
|
|
Loading…
Reference in New Issue