From patchwork Mon Sep 3 15:29:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10586101 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6467713BB for ; Mon, 3 Sep 2018 15:30:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5444E294FC for ; Mon, 3 Sep 2018 15:30:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 48A0A29631; Mon, 3 Sep 2018 15:30:24 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 F340B294FC for ; Mon, 3 Sep 2018 15:30:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727457AbeICTvC (ORCPT ); Mon, 3 Sep 2018 15:51:02 -0400 Received: from mail-io0-f196.google.com ([209.85.223.196]:37326 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727434AbeICTvC (ORCPT ); Mon, 3 Sep 2018 15:51:02 -0400 Received: by mail-io0-f196.google.com with SMTP id v14-v6so696199iob.4 for ; Mon, 03 Sep 2018 08:30:22 -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=boYAwqmgZOyX9xPrqjvFTVwqN0bWhAZgO48kHanDABs=; b=sZQqLqr+mwGxBjY61Gw/QANqk23L3yKHKOh/GwrEG+b+EYR6IvpWpztZHWJcIHmLlz cvtlbzagM965V4Phee9FGr1JJpqNHsRFwtV9z/2tuIQaSk7Ocfw+V/CuXi1Grpznb9L3 jr9Yv5Vl6c18iam7emhMp90rY3vn7eOuQXsx35mEvpgs91XHRU/4TJlHHSI28062si/1 JHMYMeDxnEZ3tD3kBZD16ejRnJB/2AeetUwyzrYBsNOTnz+YnbbxSeeo1S4NT3gO9mPU J/7E4kQFWjcHnKC74HVq9kpA598dr5izbsf+KhdFPHTcHpDQnLGwBUiKXaF5llPLMKqD FMCQ== 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=boYAwqmgZOyX9xPrqjvFTVwqN0bWhAZgO48kHanDABs=; b=SV9gHtL+tIpImfwsmCy+3VzbCsmgkkkTTBjQIw5t6C2vU8gURYW7Nxg4SUGbfN0xEY fE0zWYyNgURnyMR96mSdD2g5DoFAdA/k66yRNkPtZ7EfFp6qghDQWliGY/yLWGGxWDV5 Ddio6oit7Tl4t++eFc6LT0dcbINvsIdMMN+2k7ujFzblBrZOeugmnyVRxwxvd7beA7VZ UdbsiBKF/BU/My3s2ewx5yp1SbcKn8pRvy7sjTDcOwfrrAUKtaogewT/J9RNQRWgAVKR K5u/B+Ts7E2Fhw7s1aghgt41UexX2U6q+gmyw1TUxalpmGWNOxp9uZ1ZWfsqXcQ1cKRa JtPg== X-Gm-Message-State: APzg51BmGjw4/rJkuoprmTGt8pDVv0qUICS8GTjUPeIl9rbdcEccmAOB esMZG/zGGUtI56A4VeylHoDpg/E= X-Google-Smtp-Source: ANB0VdaJBLuQ6axkiENcDL4B8t5ro3nRhTlUoHuCl2n09uTpeqUftnlMf+4DZJL8Lth89OCi4pON7A== X-Received: by 2002:a6b:a188:: with SMTP id k130-v6mr19646653ioe.128.1535988621937; Mon, 03 Sep 2018 08:30:21 -0700 (PDT) Received: from leira.trondhjem.org.localdomain (c-68-40-195-73.hsd1.mi.comcast.net. [68.40.195.73]) by smtp.gmail.com with ESMTPSA id c25-v6sm7040027iob.30.2018.09.03.08.30.21 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Sep 2018 08:30:21 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 24/27] SUNRPC: Fix up the back channel transmit Date: Mon, 3 Sep 2018 11:29:33 -0400 Message-Id: <20180903152936.24325-25-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180903152936.24325-24-trond.myklebust@hammerspace.com> References: <20180903152936.24325-1-trond.myklebust@hammerspace.com> <20180903152936.24325-2-trond.myklebust@hammerspace.com> <20180903152936.24325-3-trond.myklebust@hammerspace.com> <20180903152936.24325-4-trond.myklebust@hammerspace.com> <20180903152936.24325-5-trond.myklebust@hammerspace.com> <20180903152936.24325-6-trond.myklebust@hammerspace.com> <20180903152936.24325-7-trond.myklebust@hammerspace.com> <20180903152936.24325-8-trond.myklebust@hammerspace.com> <20180903152936.24325-9-trond.myklebust@hammerspace.com> <20180903152936.24325-10-trond.myklebust@hammerspace.com> <20180903152936.24325-11-trond.myklebust@hammerspace.com> <20180903152936.24325-12-trond.myklebust@hammerspace.com> <20180903152936.24325-13-trond.myklebust@hammerspace.com> <20180903152936.24325-14-trond.myklebust@hammerspace.com> <20180903152936.24325-15-trond.myklebust@hammerspace.com> <20180903152936.24325-16-trond.myklebust@hammerspace.com> <20180903152936.24325-17-trond.myklebust@hammerspace.com> <20180903152936.24325-18-trond.myklebust@hammerspace.com> <20180903152936.24325-19-trond.myklebust@hammerspace.com> <20180903152936.24325-20-trond.myklebust@hammerspace.com> <20180903152936.24325-21-trond.myklebust@hammerspace.com> <20180903152936.24325-22-trond.myklebust@hammerspace.com> <20180903152936.24325-23-trond.myklebust@hammerspace.com> <20180903152936.24325-24-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 Fix up the back channel code to recognise that it has already been transmitted, so does not need to be called again. Also ensure that we set req->rq_task. Signed-off-by: Trond Myklebust --- net/sunrpc/clnt.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index fb40d1e9f636..586976c4c02a 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -1150,6 +1150,7 @@ struct rpc_task *rpc_run_bc_task(struct rpc_rqst *req) */ task = rpc_new_task(&task_setup_data); task->tk_rqstp = req; + req->rq_task = task; /* * Set up the xdr_buf length. @@ -2054,6 +2055,9 @@ call_bc_transmit(struct rpc_task *task) struct rpc_rqst *req = task->tk_rqstp; xprt_request_enqueue_transmit(task); + if (!test_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate)) + goto out_wakeup; + if (!xprt_prepare_transmit(task)) goto out_retry; @@ -2108,6 +2112,7 @@ call_bc_transmit(struct rpc_task *task) "error: %d\n", task->tk_status); break; } +out_wakeup: rpc_wake_up_queued_task(&req->rq_xprt->pending, task); out_done: task->tk_action = rpc_exit_task;