if (!nfsd_filecache_wq)
                goto out;
 
-       nfsd_file_hashtbl = kcalloc(NFSD_FILE_HASH_SIZE,
+       nfsd_file_hashtbl = kvcalloc(NFSD_FILE_HASH_SIZE,
                                sizeof(*nfsd_file_hashtbl), GFP_KERNEL);
        if (!nfsd_file_hashtbl) {
                pr_err("nfsd: unable to allocate nfsd_file_hashtbl\n");
        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;
        destroy_workqueue(nfsd_filecache_wq);
        nfsd_filecache_wq = NULL;
        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;
        destroy_workqueue(nfsd_filecache_wq);
        nfsd_filecache_wq = NULL;