From 78da8ea7bdf593ca495d1347926c64a07ab1dfbc Mon Sep 17 00:00:00 2001 From: Don Brady Date: Fri, 19 Feb 2021 10:55:12 -0700 Subject: [PATCH] DLPX-74216 nfs-server restarts fail when order-5 allocations are exhausted --- fs/nfsd/filecache.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c index 51c08ae79063c..fed8aba61ee00 100644 --- a/fs/nfsd/filecache.c +++ b/fs/nfsd/filecache.c @@ -579,8 +579,8 @@ nfsd_file_cache_init(void) if (nfsd_file_hashtbl) return 0; - nfsd_file_hashtbl = kcalloc(NFSD_FILE_HASH_SIZE, - sizeof(*nfsd_file_hashtbl), GFP_KERNEL); + nfsd_file_hashtbl = kvzalloc(array_size(NFSD_FILE_HASH_SIZE, + sizeof(*nfsd_file_hashtbl)), GFP_KERNEL); if (!nfsd_file_hashtbl) { pr_err("nfsd: unable to allocate nfsd_file_hashtbl\n"); goto out_err; @@ -646,7 +646,7 @@ nfsd_file_cache_init(void) nfsd_file_slab = NULL; kmem_cache_destroy(nfsd_file_mark_slab); nfsd_file_mark_slab = NULL; - kfree(nfsd_file_hashtbl); + kvfree(nfsd_file_hashtbl); nfsd_file_hashtbl = NULL; goto out; } @@ -710,7 +710,7 @@ nfsd_file_cache_shutdown(void) fsnotify_wait_marks_destroyed(); kmem_cache_destroy(nfsd_file_mark_slab); nfsd_file_mark_slab = NULL; - kfree(nfsd_file_hashtbl); + kvfree(nfsd_file_hashtbl); nfsd_file_hashtbl = NULL; }