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; }