Commit e762a639 authored by Trond Myklebust's avatar Trond Myklebust

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: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
Reviewed-by: default avatarBenjamin Coddington <bcodding@redhat.com>
Tested-by: default avatarBenjamin Coddington <bcodding@redhat.com>
Tested-by: default avatarDave Wysochanski <dwysocha@redhat.com>
parent 3b2a09f1
...@@ -759,7 +759,6 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *desc, struct page *page, ...@@ -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 page *pages[NFS_MAX_READDIR_PAGES];
struct nfs_entry entry; struct nfs_entry entry;
struct file *file = desc->file; struct file *file = desc->file;
struct nfs_cache_array *array;
int status = -ENOMEM; int status = -ENOMEM;
unsigned int array_size = ARRAY_SIZE(pages); 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, ...@@ -778,11 +777,9 @@ int nfs_readdir_xdr_to_array(nfs_readdir_descriptor_t *desc, struct page *page,
goto out; goto out;
} }
array = kmap(page);
status = nfs_readdir_alloc_pages(pages, array_size); status = nfs_readdir_alloc_pages(pages, array_size);
if (status < 0) if (status < 0)
goto out_release_array; goto out_release_label;
do { do {
unsigned int pglen; unsigned int pglen;
status = nfs_readdir_xdr_filler(pages, desc, &entry, file, inode); 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, ...@@ -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); 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); nfs_readdir_free_pages(pages, array_size);
out_release_array: out_release_label:
kunmap(page);
nfs4_label_free(entry.label); nfs4_label_free(entry.label);
out: out:
nfs_free_fattr(entry.fattr); nfs_free_fattr(entry.fattr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment