@@ -649,8 +649,8 @@ nfsd_file_cache_init(void)
649649 if (!nfsd_filecache_wq )
650650 goto out ;
651651
652- nfsd_file_hashtbl = kcalloc (NFSD_FILE_HASH_SIZE ,
653- sizeof (* nfsd_file_hashtbl ), GFP_KERNEL );
652+ nfsd_file_hashtbl = kvzalloc ( array_size (NFSD_FILE_HASH_SIZE ,
653+ sizeof (* nfsd_file_hashtbl )) , GFP_KERNEL );
654654 if (!nfsd_file_hashtbl ) {
655655 pr_err ("nfsd: unable to allocate nfsd_file_hashtbl\n" );
656656 goto out_err ;
@@ -716,7 +716,7 @@ nfsd_file_cache_init(void)
716716 nfsd_file_slab = NULL ;
717717 kmem_cache_destroy (nfsd_file_mark_slab );
718718 nfsd_file_mark_slab = NULL ;
719- kfree (nfsd_file_hashtbl );
719+ kvfree (nfsd_file_hashtbl );
720720 nfsd_file_hashtbl = NULL ;
721721 destroy_workqueue (nfsd_filecache_wq );
722722 nfsd_filecache_wq = NULL ;
@@ -864,7 +864,7 @@ nfsd_file_cache_shutdown(void)
864864 fsnotify_wait_marks_destroyed ();
865865 kmem_cache_destroy (nfsd_file_mark_slab );
866866 nfsd_file_mark_slab = NULL ;
867- kfree (nfsd_file_hashtbl );
867+ kvfree (nfsd_file_hashtbl );
868868 nfsd_file_hashtbl = NULL ;
869869 destroy_workqueue (nfsd_filecache_wq );
870870 nfsd_filecache_wq = NULL ;
0 commit comments