From patchwork Fri May 4 20:22:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 10381639 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 BFD4A60353 for ; Fri, 4 May 2018 20:23:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD8B329438 for ; Fri, 4 May 2018 20:23:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A0326295A7; Fri, 4 May 2018 20:23:02 +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 8935029438 for ; Fri, 4 May 2018 20:23:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751721AbeEDUXA (ORCPT ); Fri, 4 May 2018 16:23:00 -0400 Received: from mail-qk0-f196.google.com ([209.85.220.196]:34050 "EHLO mail-qk0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751687AbeEDUW7 (ORCPT ); Fri, 4 May 2018 16:22:59 -0400 Received: by mail-qk0-f196.google.com with SMTP id p186so17625042qkd.1 for ; Fri, 04 May 2018 13:22:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=O4mTpETMrKTRXi+mrNkUvNV+3jvMh/XizXsd2O/pZhk=; b=gANw02n/hT1LPD1GajRBQCGrzu82cZU+h4POwIVMVkDa2kIKaLH4IksOb4Fac5fvDE 8lqOhgLlJWOR/vQ0O41Qlh0J3SjMCE5iP9CJo7aQ7KWvRdPQgGaM2hu81CyIqlwaPLH/ E9TFqCsnQxi6dxzoYWOB6CADFD5T9uSZ4C3KmcmT+yY7uCahdaY4iWxArinyxeJTf6Xp UKw+g5i3qr6MKgCrxVL2zxVj8mIRSNqrtvye0Mx0ndOzy7YKYIzm7Jw8S4jQBq41ykX/ 5tC+LddfRJlLL1kUssvN5SP9cuKKeP+CKI3EBilaqDFeUfBtLPtLrgmt+RuIQ88WXJ41 9nJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=O4mTpETMrKTRXi+mrNkUvNV+3jvMh/XizXsd2O/pZhk=; b=pWILvHXkneAHGGA0tMxFJlFp86nhGf8YM3l4jTj1ZxYsRJ+HaFD8MVG1yRrKFSv1Xo Lg6iMUUPvmF8kCjk7iRKkFVbMPvZ9MKFSm/YWPXGrGdvvXWDZnfCAwaqsojUbQNVTDSb U2WRvpsWI6IFeSYRxnaDtCMy1vvbOdnTSNPLtMbZ4yBn7CDC8VnvyBBQblCJiXSkJhEx 0KZ4qCHYosI5xOdby5PeDp/QJPSNQGCzTmnFnrLDuHFiXubs6V76mpznHRrS+wpCPHdd ki9OUCmiPnNBnbuwI4EBI+lPH1TGnzesU8o6AVqPK7aKZ3wEEmmJAzPHPMW5W9tIWrxK hNYg== X-Gm-Message-State: ALQs6tB1exSkuTi5XrgXZGGDwiHMOMcf9ng4v7lXNjrJdIIUO1Q2QCYJ vOnF6ArHgvnKYJZRsXb7p6dJvKuM X-Google-Smtp-Source: AB8JxZrnqzcmbGJp/AMTxpOk5x6IV7Zk1gkqAdFS69KBe9cmPkr8gU7aeQCJNROwDHTYmXwVMMvchw== X-Received: by 10.55.234.8 with SMTP id t8mr23200727qkj.237.1525465378257; Fri, 04 May 2018 13:22:58 -0700 (PDT) Received: from gouda.nowheycreamery.com.com (c-68-40-188-1.hsd1.mi.comcast.net. [68.40.188.1]) by smtp.gmail.com with ESMTPSA id m25-v6sm7359261qtb.42.2018.05.04.13.22.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 May 2018 13:22:57 -0700 (PDT) From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: Trond.Myklebust@primarydata.com, linux-nfs@vger.kernel.org Subject: [PATCH 1/5] NFS: Move call to nfs4_state_protect_write() to nfs4_write_setup() Date: Fri, 4 May 2018 16:22:48 -0400 Message-Id: <20180504202252.5862-2-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180504202252.5862-1-Anna.Schumaker@Netapp.com> References: <20180504202252.5862-1-Anna.Schumaker@Netapp.com> 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 From: Anna Schumaker This doesn't really need to be in the generic NFS client code, and I think it makes more sense to keep the v4 code in one place. Signed-off-by: Anna Schumaker --- fs/nfs/nfs3proc.c | 3 ++- fs/nfs/nfs4proc.c | 4 +++- fs/nfs/proc.c | 3 ++- fs/nfs/write.c | 5 +---- include/linux/nfs_xdr.h | 3 ++- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c index eadf1ab31d16..3ffaff471592 100644 --- a/fs/nfs/nfs3proc.c +++ b/fs/nfs/nfs3proc.c @@ -823,7 +823,8 @@ static int nfs3_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) } static void nfs3_proc_write_setup(struct nfs_pgio_header *hdr, - struct rpc_message *msg) + struct rpc_message *msg, + struct rpc_clnt **clnt) { msg->rpc_proc = &nfs3_procedures[NFS3PROC_WRITE]; } diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index b71757e85066..09be575e9194 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -4979,7 +4979,8 @@ bool nfs4_write_need_cache_consistency_data(struct nfs_pgio_header *hdr) } static void nfs4_proc_write_setup(struct nfs_pgio_header *hdr, - struct rpc_message *msg) + struct rpc_message *msg, + struct rpc_clnt **clnt) { struct nfs_server *server = NFS_SERVER(hdr->inode); @@ -4996,6 +4997,7 @@ static void nfs4_proc_write_setup(struct nfs_pgio_header *hdr, msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_WRITE]; nfs4_init_sequence(&hdr->args.seq_args, &hdr->res.seq_res, 1); + nfs4_state_protect_write(server->nfs_client, clnt, msg, hdr); } static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c index 4e93d6308733..aaad337962d0 100644 --- a/fs/nfs/proc.c +++ b/fs/nfs/proc.c @@ -618,7 +618,8 @@ static int nfs_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) } static void nfs_proc_write_setup(struct nfs_pgio_header *hdr, - struct rpc_message *msg) + struct rpc_message *msg, + struct rpc_clnt **clnt) { /* Note: NFSv2 ignores @stable and always uses NFS_FILE_SYNC */ hdr->args.stable = NFS_FILE_SYNC; diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 0193053bc139..b633583ca268 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1375,12 +1375,9 @@ static void nfs_initiate_write(struct nfs_pgio_header *hdr, int priority = flush_task_priority(how); task_setup_data->priority = priority; - rpc_ops->write_setup(hdr, msg); + rpc_ops->write_setup(hdr, msg, &task_setup_data->rpc_client); trace_nfs_initiate_write(hdr->inode, hdr->io_start, hdr->good_bytes, hdr->args.stable); - - nfs4_state_protect_write(NFS_SERVER(hdr->inode)->nfs_client, - &task_setup_data->rpc_client, msg, hdr); } /* If a nfs_flush_* function fails, it should remove reqs from @head and diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 34d28564ecf3..1009269e1a49 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h @@ -1620,7 +1620,8 @@ struct nfs_rpc_ops { struct nfs_pgio_header *); void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *); int (*read_done)(struct rpc_task *, struct nfs_pgio_header *); - void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *); + void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, + struct rpc_clnt **); int (*write_done)(struct rpc_task *, struct nfs_pgio_header *); void (*commit_setup) (struct nfs_commit_data *, struct rpc_message *); void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *);