Received: by 2002:a05:7412:f584:b0:e2:908c:2ebd with SMTP id eh4csp1931031rdb; Tue, 5 Sep 2023 09:07:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEJ8+5Vmmfwl2rCnzKhEwTOV161bwm9D/oYO0dsQSDmDjefSEKzRrXlwM6KcovxjzggNqgn X-Received: by 2002:a17:907:2cd9:b0:9a2:b89:f82b with SMTP id hg25-20020a1709072cd900b009a20b89f82bmr241682ejc.1.1693930022297; Tue, 05 Sep 2023 09:07:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693930022; cv=none; d=google.com; s=arc-20160816; b=wVlsl/JBvUtpL5lUU1qBYpHoRqNNcKRkLNkaeRtxrvGe53dLsUtoBtwyctSF5BOh6P 9xUfbi2bxjW7+Es5P6fdbps+W8uIUuUw6rqtDVFAGu0mRd9Mc1qmDsKDs/NG/xr6JWl4 KomblySzg3iZizVYOGTajlagx2jxtab8fjlcBn8JN/9Ly60rkOB2pZSs+t8tzVW4lqKd OyQHAzLD+XHEkUbBgNvrRxrSZqKyYeZamdcej9v7PzW0/8D4k/zHuQSZZOw4IWeUZzZA PlbPPHSZqLSXXNYjwXxAquGopb95+OxB9ULMkbS8WOsjGozFCLnUkba9XsvD8JessJPa 4JEw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6XwIZRGmWq+tr6plHL4OHC2JjoJ9RmeqLJl1DqIF+n0=; fh=Nx7oWkHkvQYnbI/T4Mf5Yy5c3UTExEmxDbOLG8ysieI=; b=T0Bb69nvk85a5TH0IgqNERa/CjUOw858IKrum7/W/8K+pjNEkAS3p2HXfrtrPGvFE7 X1acvlRfIkZqmE07cqjb3mQmZGnuJgQ2btDMQIst234exIj5odItFJ4eWA2OzyZEczJ5 tF1CkJD05j8KkAfCUmnhmRvhk26iEQ0TdhxLhrB/cse0xkMMbot3l0oZ9hubLiRUfQVD BWJFxStpioPBKf2DgIcXdIdYjEE7/hoPKnP4CgrAg1Pwrm/lmVjUaBhY4Sn6cA9vrRSK lRn+p3oWX1GqqiIGbMPQJtohtwyZeA5oKK1g9QGD6o3BfD/gtQzmfYBU6dAVnJmGihrP reYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XPY4eQfx; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ty24-20020a170907c71800b00992b49a8f89si7671297ejc.650.2023.09.05.09.06.54; Tue, 05 Sep 2023 09:07:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XPY4eQfx; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240072AbjIDQmB (ORCPT + 27 others); Mon, 4 Sep 2023 12:42:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240474AbjIDQli (ORCPT ); Mon, 4 Sep 2023 12:41:38 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 047121B7 for ; Mon, 4 Sep 2023 09:41:35 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 308FACE0F1B for ; Mon, 4 Sep 2023 16:41:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 473DDC433CB; Mon, 4 Sep 2023 16:41:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1693845691; bh=6HBgG2zdnGPv6DyVxNzy21wZ3ZmR0Yp1Zd+W+7xooGQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XPY4eQfx1RqxzRvv5BQgtZMkSkhyKSQeT6NxExnjwM9WjX2ObcI1+hinJAQxdVCOg 7jY9OcREW4lCkYs6Dbe1JB0rx9AGNvGsdYZ7tBtvDGMTDKMIduBv0IHry15e4KwI+8 OFd2O/eneF+y1KQr2IFZfopsRQrNqypnPd9mO/hOq3xQnOArYNCnNZA41cUpUstSDh FHeRxIVFyXVBvkTsWdiVPnX6d/Km2B6IZOMGxUhjIXRqX07A/DX/lytfbEWjCqndKp MMS9RKb7P2vTH9o+gOvAEd17Hvc9PoLEqhCnf7VGmUCVZMbLPDqo6GDAPBHq0hUrgF S9oVn1WxCUO8A== From: trondmy@kernel.org To: Anna Schumaker Cc: linux-nfs@vger.kernel.org Subject: [PATCH v2 5/5] NFS: More fixes for nfs_direct_write_reschedule_io() Date: Mon, 4 Sep 2023 12:34:41 -0400 Message-ID: <20230904163441.11950-6-trondmy@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230904163441.11950-5-trondmy@kernel.org> References: <20230904163441.11950-1-trondmy@kernel.org> <20230904163441.11950-2-trondmy@kernel.org> <20230904163441.11950-3-trondmy@kernel.org> <20230904163441.11950-4-trondmy@kernel.org> <20230904163441.11950-5-trondmy@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham 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-nfs@vger.kernel.org From: Trond Myklebust Ensure that all requests are put back onto the commit list so that they can be rescheduled. Fixes: 4daaeba93822 ("NFS: Fix nfs_direct_write_reschedule_io()") Signed-off-by: Trond Myklebust --- fs/nfs/direct.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 3391c8b97da5..f6c74f424691 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c @@ -780,18 +780,23 @@ static void nfs_write_sync_pgio_error(struct list_head *head, int error) static void nfs_direct_write_reschedule_io(struct nfs_pgio_header *hdr) { struct nfs_direct_req *dreq = hdr->dreq; + struct nfs_page *req; + struct nfs_commit_info cinfo; trace_nfs_direct_write_reschedule_io(dreq); + nfs_init_cinfo_from_dreq(&cinfo, dreq); spin_lock(&dreq->lock); - if (dreq->error == 0) { + if (dreq->error == 0) dreq->flags = NFS_ODIRECT_RESCHED_WRITES; - /* fake unstable write to let common nfs resend pages */ - hdr->verf.committed = NFS_UNSTABLE; - hdr->good_bytes = hdr->args.offset + hdr->args.count - - hdr->io_start; - } + set_bit(NFS_IOHDR_REDO, &hdr->flags); spin_unlock(&dreq->lock); + while (!list_empty(&hdr->pages)) { + req = nfs_list_entry(hdr->pages.next); + nfs_list_remove_request(req); + nfs_unlock_request(req); + nfs_mark_request_commit(req, NULL, &cinfo, 0); + } } static const struct nfs_pgio_completion_ops nfs_direct_write_completion_ops = { -- 2.41.0