From patchwork Tue Jun 19 23:19:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10475635 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B9F13601D7 for ; Tue, 19 Jun 2018 23:20:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A89CA28B26 for ; Tue, 19 Jun 2018 23:20:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9ADF028B80; Tue, 19 Jun 2018 23:20:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4D62C28B72 for ; Tue, 19 Jun 2018 23:20:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750760AbeFSXUN (ORCPT ); Tue, 19 Jun 2018 19:20:13 -0400 Received: from mail-it0-f67.google.com ([209.85.214.67]:51309 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750805AbeFSXUI (ORCPT ); Tue, 19 Jun 2018 19:20:08 -0400 Received: by mail-it0-f67.google.com with SMTP id n7-v6so2889633itn.1 for ; Tue, 19 Jun 2018 16:20:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QUBmPySN9CPfqheUP/9D/uJP7yJOoPtB9oTWNsqJzHU=; b=T5zj0WNXjTBg3zHGe8k2PGvJdkBydU6hK6ylygVQ6HjzLonk3ZYb+KganfU6QHdmMV CRhXWmFePVvcPMU+R86lzhhuUds3I6Udz6L4tcxbBuKRpFJRA3aPe3UJkrGBlKf62E4w THbqIwfqcwUmWFHEkGG9y3t4Ter5kzEgesjWYhRvut1DD7SJGYzDlRqGSfHLP4q5yTko ++JJ+imyIC2QKmmsKf/9MKfFuIfQ1KcX96JvNW0Or8AuORGLylNu+WWPer9hRor3Jr/E ejMZaJAl5fgAiBr0WWzA49sJBUMUbfeQw5V/L5gIacpKsIzQnef/3AG6WN53mTjW06dx CX/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QUBmPySN9CPfqheUP/9D/uJP7yJOoPtB9oTWNsqJzHU=; b=TmLONlTSZ8YHvdDPSDrnUVk//M4OzjQE/VmXkyQdPdYg+9VLmqZLeiAVdwlg4opB47 QDC0hAMGRvYdXSknISS1k04OZ+gYEqf2uurJhoWhxj0x6Cs4T8f99UN6ZILURaiUlOEj DcI6ln8kpSP80BGbZ3ypLFAP+f6QcPeEYGeuaxBH+0AHYT0hm6DC03K0RYiipLg+0STg 4tCSmqqwTHZsqkYkH9o5uFyvYxo/JgKfpE6ZlC0DPJu+PDYhkrj22VsWuWEGDnzZojsv uIOFrzL6yJtKIBgqBdV+ksE0JARHGt0VuhUq0o0JinnBL+9sEkhz6/WNBUyLhQfS1WNF 0sLA== X-Gm-Message-State: APt69E1llMMvvJBXFCaLxdKKpjHXaXFiS/hbxlQMpK9srwgKOiZ+Lbst dUickr7xzjjx8ujh5Mv4AvsSJQI= X-Google-Smtp-Source: ADUXVKJX9twWgdMqdGqvjBjFMgNJEJPsORteoZXptqTfNUuMlycNlZgdIxm72JVI0bdFKkva5CouHA== X-Received: by 2002:a24:f007:: with SMTP id s7-v6mr15575820ith.15.1529450407044; Tue, 19 Jun 2018 16:20:07 -0700 (PDT) Received: from leira.trondhjem.org.localdomain (50-124-245-47.alma.mi.frontiernet.net. [50.124.245.47]) by smtp.gmail.com with ESMTPSA id 192-v6sm630771itl.41.2018.06.19.16.20.06 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 19 Jun 2018 16:20:06 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 2/2] pNFS/flexfiles: Process writeback resends from nfsiod context as well Date: Tue, 19 Jun 2018 19:19:43 -0400 Message-Id: <20180619231943.105925-2-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180619231943.105925-1-trond.myklebust@hammerspace.com> References: <20180619231943.105925-1-trond.myklebust@hammerspace.com> MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Although the writeback resends are more robust than the reads, since they are not immediately rescheduled by the same thread, we are better off processing them in the same place as the reads. Signed-off-by: Trond Myklebust --- fs/nfs/flexfilelayout/flexfilelayout.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c index 336b4d560e2c..1386b774ec95 100644 --- a/fs/nfs/flexfilelayout/flexfilelayout.c +++ b/fs/nfs/flexfilelayout/flexfilelayout.c @@ -1428,12 +1428,14 @@ static int ff_layout_write_done_cb(struct rpc_task *task, hdr->ds_clp, hdr->lseg, hdr->pgio_mirror_idx); + clear_bit(NFS_IOHDR_RESEND_PNFS, &hdr->flags); + clear_bit(NFS_IOHDR_RESEND_MDS, &hdr->flags); switch (err) { case -NFS4ERR_RESET_TO_PNFS: - ff_layout_reset_write(hdr, true); + set_bit(NFS_IOHDR_RESEND_PNFS, &hdr->flags); return task->tk_status; case -NFS4ERR_RESET_TO_MDS: - ff_layout_reset_write(hdr, false); + set_bit(NFS_IOHDR_RESEND_MDS, &hdr->flags); return task->tk_status; case -EAGAIN: return -EAGAIN; @@ -1580,6 +1582,10 @@ static void ff_layout_write_release(void *data) struct nfs_pgio_header *hdr = data; ff_layout_write_record_layoutstats_done(&hdr->task, hdr); + if (test_bit(NFS_IOHDR_RESEND_PNFS, &hdr->flags)) + ff_layout_reset_write(hdr, true); + else if (test_bit(NFS_IOHDR_RESEND_MDS, &hdr->flags)) + ff_layout_reset_write(hdr, false); pnfs_generic_rw_release(data); }