Commit e762a639 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

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
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -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);