Commit 4b71e241 authored by Fabio M. De Francesco's avatar Fabio M. De Francesco Committed by Anna Schumaker

NFS: Convert kmap_atomic() to kmap_local_folio()

kmap_atomic() is deprecated in favor of kmap_local_{folio,page}().

Therefore, replace kmap_atomic() with kmap_local_folio() in
nfs_readdir_folio_array_append().

kmap_atomic() disables page-faults and preemption (the latter only for
!PREEMPT_RT kernels), However, the code within the mapping/un-mapping in
nfs_readdir_folio_array_append() does not depend on the above-mentioned
side effects.

Therefore, a mere replacement of the old API with the new one is all that
is required (i.e., there is no need to explicitly add any calls to
pagefault_disable() and/or preempt_disable()).

Tested with (x)fstests in a QEMU/KVM x86_32 VM, 6GB RAM, booting a kernel
with HIGHMEM64GB enabled.

Cc: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarFabio M. De Francesco <fmdefrancesco@gmail.com>
Fixes: ec108d3c ("NFS: Convert readdir page array functions to use a folio")
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent f1fcbaa1
...@@ -317,7 +317,7 @@ static int nfs_readdir_folio_array_append(struct folio *folio, ...@@ -317,7 +317,7 @@ static int nfs_readdir_folio_array_append(struct folio *folio,
name = nfs_readdir_copy_name(entry->name, entry->len); name = nfs_readdir_copy_name(entry->name, entry->len);
array = kmap_atomic(folio_page(folio, 0)); array = kmap_local_folio(folio, 0);
if (!name) if (!name)
goto out; goto out;
ret = nfs_readdir_array_can_expand(array); ret = nfs_readdir_array_can_expand(array);
...@@ -340,7 +340,7 @@ static int nfs_readdir_folio_array_append(struct folio *folio, ...@@ -340,7 +340,7 @@ static int nfs_readdir_folio_array_append(struct folio *folio,
nfs_readdir_array_set_eof(array); nfs_readdir_array_set_eof(array);
out: out:
*cookie = array->last_cookie; *cookie = array->last_cookie;
kunmap_atomic(array); kunmap_local(array);
return ret; return ret;
} }
......
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