Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp954489pxb; Wed, 6 Apr 2022 05:14:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz++tzBXkXbOF/IwlH4X2bcC986mnPbniUh2i2ERDMKrBF+N+1s3Nr/yyUztI3BVUY/cSvZ X-Received: by 2002:a17:902:9b87:b0:156:bf3e:9ab5 with SMTP id y7-20020a1709029b8700b00156bf3e9ab5mr8424111plp.119.1649247244302; Wed, 06 Apr 2022 05:14:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649247244; cv=none; d=google.com; s=arc-20160816; b=yi3K9FVW60ej/dHuvvIj0h01opPigHn2njglyW+g3zQyBPy4ajCJt2giYu2d/XO+DO Qp7mZXOFKZiJ0BD+4yeSTS+IJNn6nX7zjtoE9ilrkNjKVw6MOUK0/mf7oqMqLNj+9OvT MtkqEtWT5KifEQQZtj4gob01b7kmUinr1jAWzN5DOHKbx/S1OZHPdcsKkrrrIBefJfgX aezCQE7qvRJodMc1b//9GC2FiUzA3191WHqlN0aIT8rSXe8Z3sw7xdopZ55sLkDqIxJl 5v2UYBJaJwspZ5a828ysDRdCFf4KHIL53a5kX0fkOUKS2sJMOl7jAxBVMb3P1i0rswlA 9VnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jeZzYg7l0dI6tlVeKOuM2v3Wyka9DKQI9RnfJf5hRqM=; b=tJWqNwFhqKlMbXiWUeop5hHTnS2sH5JxKPirE/FxYCymCLwVljo4twHoHYqVdXj4SK bws4sEdVBsVL0Z9wQVzGAoLrZUvyvMvITbrW40EKFcpASuCSvyifn5PZ0yZguZ/zPvNN KGVX8ia5PSW4YWOnUQzIx4Z2pOo4LS+9wv2WGVXTB61PyXW9I5eITlXcCmWN9CAF9S8Y 8IbLsok/40j/s7aJInd5MGqhfOvZ1/wby733aLrEYQzMn/UHmdnolHwr0jvBQoKh8sZL NmU1gQMBpHMk5SmzYmLWDYQiA3MYFVcO6ycNX6+BtaDO45EqS44iSbLr55eBeNZCedrA S78Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="Bi/FzN6t"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id w26-20020a63161a000000b003816043f130si15665622pgl.805.2022.04.06.05.14.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 05:14:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="Bi/FzN6t"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 63A4B6B631E; Wed, 6 Apr 2022 03:53:09 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243464AbiDEVAu (ORCPT + 99 others); Tue, 5 Apr 2022 17:00:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356630AbiDEKYm (ORCPT ); Tue, 5 Apr 2022 06:24:42 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C4BACBE9DB; Tue, 5 Apr 2022 03:08:39 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D924C616E7; Tue, 5 Apr 2022 10:08:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E61B6C385A1; Tue, 5 Apr 2022 10:08:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649153318; bh=d1tlUuSpZuo2hesHm0/XcOMp7eNHk5Xpfa4sm0aMJX8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bi/FzN6tvjgp4e1zJ22GZBKDi0rCmK4YYPJPMp1FAYLSP+FfV8RmQT36IsXI1m89s aFvY4aqomAw4EGgsLnlugtuHsKmAWWt1hv8C1dj3hqGyiOD9RJDcG7KLf6Kzrj/iJS 5J6TlTvBy/fBLSoprz98g5VJa7+9GEbzVplbJ6k0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jeff Layton , Amir Goldstein , Chuck Lever , Sasha Levin Subject: [PATCH 5.10 180/599] nfsd: more robust allocation failure handling in nfsd_file_cache_init Date: Tue, 5 Apr 2022 09:27:54 +0200 Message-Id: <20220405070304.197556969@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Amir Goldstein [ Upstream commit 4d2eeafecd6c83b4444db3dc0ada201c89b1aa44 ] The nfsd file cache table can be pretty large and its allocation may require as many as 80 contigious pages. Employ the same fix that was employed for similar issue that was reported for the reply cache hash table allocation several years ago by commit 8f97514b423a ("nfsd: more robust allocation failure handling in nfsd_reply_cache_init"). Fixes: 65294c1f2c5e ("nfsd: add a new struct file caching facility to nfsd") Link: https://lore.kernel.org/linux-nfs/e3cdaeec85a6cfec980e87fc294327c0381c1778.camel@kernel.org/ Suggested-by: Jeff Layton Signed-off-by: Amir Goldstein Reviewed-by: Jeff Layton Signed-off-by: Chuck Lever Tested-by: Amir Goldstein Signed-off-by: Sasha Levin --- fs/nfsd/filecache.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c index e5aad1c10ea3..acd0898e3866 100644 --- a/fs/nfsd/filecache.c +++ b/fs/nfsd/filecache.c @@ -641,7 +641,7 @@ nfsd_file_cache_init(void) 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"); @@ -708,7 +708,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; destroy_workqueue(nfsd_filecache_wq); nfsd_filecache_wq = NULL; @@ -854,7 +854,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; destroy_workqueue(nfsd_filecache_wq); nfsd_filecache_wq = NULL; -- 2.34.1