Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2179785iof; Tue, 7 Jun 2022 22:21:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwVony9o6pMA+PaMO2LMsG4Fy5eX/R3Ng7QPiP5Lez804iG2MzFN1lr3n6BrTDA+xkye+of X-Received: by 2002:a17:90a:ce18:b0:1e7:71de:7721 with SMTP id f24-20020a17090ace1800b001e771de7721mr29873641pju.244.1654665697171; Tue, 07 Jun 2022 22:21:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654665697; cv=none; d=google.com; s=arc-20160816; b=b2JOl9yFk4MM2zkzK5OyAei29R/a6n/yXPJl7gWF0vNPJDNSAJmK3okbaNU9mTVtAs dlIt2NR6hqqBWM1GUuP4k2BC7n2vFBac6yU1E+h3jR/gYVk6/sW8e5NPb2oAT6RcH+tQ hU6mPKRx2e9Ib2SaGR1P6v0aGmzANXpoMl7/wO/fAlFqyG/hPg7QSXW9mYq9iVEjPMXv B0Ae6CMe32fWwfdJ1GU2aAxYLFy9B6nK8HWwFl6BsMRUfFNPCSLtXfehIgoZsV6u3t9K Gnrw+TAAIgxzu7jToTlMRl+mhihtKL5pjR3z3AhQfIkYE16uZegk2tkV69293r3OUcqM a77Q== 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=YUJ8M9YCdqs1AztfNW1gyfcdzyX3RdbIA7PpzCEJpUU=; b=Tdrb2muqouuIpy2D+eR9xzCOsxyA4p1JxwmJaUNpuu/t87PgKj/9FX8l9fJRsZmSM+ bSMhxkN/V7ClhdzFdQKlCoWCmJbayGdq4Agtlfu4EmJilsF3Th3EiTv+GYkLovfcVMAv OZOZrs4U789o/Hky9O2GuU2siABkrpjshSdLvQW/P9Mbg6/eU/jdYTCa8QFdZqc11LDN wn0fqvazugV0acdI2BIbTib1We+5xJpW4CP64JD72mlUZF3WOUudAR9ejnNAr2dsfzqh +/mHigac4QDjpcRB6BROcd2yVU5F1nroFhogxaSnt5Y4hWTymUREBTEZv1Eygs2BMCV6 yIJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=lQILqAfC; 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 mh7-20020a17090b4ac700b001e0a4778cecsi29039357pjb.110.2022.06.07.22.21.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 22:21:37 -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=lQILqAfC; 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 8E1C22AE9FD; Tue, 7 Jun 2022 21:56:19 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354388AbiFGTmn (ORCPT + 99 others); Tue, 7 Jun 2022 15:42:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354528AbiFGSrG (ORCPT ); Tue, 7 Jun 2022 14:47:06 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69D949C2E5; Tue, 7 Jun 2022 11:01:51 -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 ams.source.kernel.org (Postfix) with ESMTPS id 134BCB82354; Tue, 7 Jun 2022 18:01:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FCA0C385A5; Tue, 7 Jun 2022 18:01:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654624908; bh=Ga08/OLnyXNnL8sL9UQF+m5AArZ3XQ4eVArDlX0HBPA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lQILqAfCSpVeOY3x4D76iLdaQefSKcikcTS9ba8wwm/Xv3eMMPChLPLFSKbDCYawb ufA0VKDKPccVabi8+pDCsgmKLk94WAJcWjZoaTxCZn5hXNAd7D6D433/YDZK/ORNGD Msc/Z3lEI8c1MudsyjybwmFHiWUGHRwFInEfv4Xo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Olga Kornievskaia , Trond Myklebust , Anna Schumaker , Sasha Levin Subject: [PATCH 5.15 498/667] NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout Date: Tue, 7 Jun 2022 19:02:43 +0200 Message-Id: <20220607164949.635381183@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220607164934.766888869@linuxfoundation.org> References: <20220607164934.766888869@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=-3.1 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=unavailable 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: Trond Myklebust [ Upstream commit 3764a17e31d579cf9b4bd0a69894b577e8d75702 ] Commit 587f03deb69b caused pnfs_update_layout() to stop returning ENOMEM when the memory allocation fails, and hence causes it to fall back to trying to do I/O through the MDS. There is no guarantee that this will fare any better. If we're failing the pNFS layout allocation, then we should just redirty the page and retry later. Reported-by: Olga Kornievskaia Fixes: 587f03deb69b ("pnfs: refactor send_layoutget") Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker Signed-off-by: Sasha Levin --- fs/nfs/pnfs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index 7ddd003ab8b1..9203a17b3f09 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -2000,6 +2000,7 @@ pnfs_update_layout(struct inode *ino, lo = pnfs_find_alloc_layout(ino, ctx, gfp_flags); if (lo == NULL) { spin_unlock(&ino->i_lock); + lseg = ERR_PTR(-ENOMEM); trace_pnfs_update_layout(ino, pos, count, iomode, lo, lseg, PNFS_UPDATE_LAYOUT_NOMEM); goto out; @@ -2128,6 +2129,7 @@ pnfs_update_layout(struct inode *ino, lgp = pnfs_alloc_init_layoutget_args(ino, ctx, &stateid, &arg, gfp_flags); if (!lgp) { + lseg = ERR_PTR(-ENOMEM); trace_pnfs_update_layout(ino, pos, count, iomode, lo, NULL, PNFS_UPDATE_LAYOUT_NOMEM); nfs_layoutget_end(lo); -- 2.35.1