From patchwork Fri Mar 15 17:51:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10855371 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 3534C6C2 for ; Fri, 15 Mar 2019 17:52:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 15D032A8C5 for ; Fri, 15 Mar 2019 17:52:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 051D42A62D; Fri, 15 Mar 2019 17:52:54 +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 99BB52A62D for ; Fri, 15 Mar 2019 17:52:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726435AbfCORwx (ORCPT ); Fri, 15 Mar 2019 13:52:53 -0400 Received: from mail-it1-f195.google.com ([209.85.166.195]:36111 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726218AbfCORww (ORCPT ); Fri, 15 Mar 2019 13:52:52 -0400 Received: by mail-it1-f195.google.com with SMTP id h9so12215219itl.1 for ; Fri, 15 Mar 2019 10:52:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=CV+jgYjyC+jl2oQOZ8LyJFNlQ4TVrbZtGa5+Xopy62g=; b=Zp7e1oKyz5mufVcXrOUAcOofauFJdEPNv5Wmu1MmaJW4xXCTvsAXqSLmT/vQdA9omK aqhW/mTT6N6oTGY28vDc3dfYx456fuvlgv2xu8aGeYv4rLX5bu1WjQFuTotdWQG4AAxv Jogxb7Bc6izf6KwdRAJz4UnN4oTJXjwgt7O/nk4iRFA9wl0onkbudx4ON7CIOk4A6zp1 me+IK3jqKw2bn7rw2POLUCWPVFmmJja1zdCOLznU1zuWPBInryhSUddRyemNJpZej9Kh YwMENJgrJFnFfvDBuLulI+bK0UX8wdm+b+BG0bY44NuuJi/XpaokjqFk9efkxx+tzX7X T5NQ== 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:mime-version :content-transfer-encoding; bh=CV+jgYjyC+jl2oQOZ8LyJFNlQ4TVrbZtGa5+Xopy62g=; b=kjMocE5uc9e6s8KpFutNtM5eMl+HWH2+vsRS0YdU5deVg7IAHcd58UxUG87ilBP/Cj RawUHi5wTkXdo/lEaVn8N4TEqiUeb8sg28EaxU1ERwTlqaC0moJnuTQTwSnCUquNW9uA pPc5qV9EpzM35Ziyx2Tg1ZQLZZNaHRtLseGUTe6h+fRMDPlUkx8SprI0ifPOoUDPUDGa sap+/5okRB6kLzSL4Jplr0f8n5SY26W1GK2RmtmcVv/FQeiTvDEN/54lYb6EK1fqvIxh /cLt1x7ht/1sQu7Pe4MN1A0qSmkQ2j+ONGpeJJgnQSaeP/TgwYFArHmar3t8xlHrEyv+ 5h8g== X-Gm-Message-State: APjAAAUq0jI7UiwcImYe1fANefBTWFuDePvxF0YJeepCjuw6TPyugzZp PQOWGJQn1XpkN7T6zvKqhKPu1as= X-Google-Smtp-Source: APXvYqxbzck9mdocczrlmBjgsllIxousn6zTweF7xtcDNF8Ox8CE+Q0M4O79AyrtboddzL+X1z+VvQ== X-Received: by 2002:a24:e00e:: with SMTP id c14mr2822981ith.8.1552672371548; Fri, 15 Mar 2019 10:52:51 -0700 (PDT) Received: from localhost.localdomain (c-68-40-189-247.hsd1.mi.comcast.net. [68.40.189.247]) by smtp.gmail.com with ESMTPSA id r2sm1138415itk.5.2019.03.15.10.52.50 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Mar 2019 10:52:50 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 1/6] SUNRPC: Fix a client regression when handling oversized replies Date: Fri, 15 Mar 2019 13:51:36 -0400 Message-Id: <20190315175141.68792-1-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.20.1 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 If the server sends a reply that is larger than the pre-allocated buffer, then the current code may fail to register how much of the stream that it has finished reading. This again can lead to hangs. Fixes: e92053a52e68 ("SUNRPC: Handle zero length fragments correctly") Signed-off-by: Trond Myklebust --- net/sunrpc/xprtsock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 42f45d33dc56..9359539907ba 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -453,7 +453,7 @@ xs_read_xdr_buf(struct socket *sock, struct msghdr *msg, int flags, goto out; if (ret != want) goto out; - } else + } else if (offset < seek_init) offset = seek_init; ret = -EMSGSIZE; out: From patchwork Fri Mar 15 17:51:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10855373 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 2308A6C2 for ; Fri, 15 Mar 2019 17:52:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C3DB2A62D for ; Fri, 15 Mar 2019 17:52:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0058A2AB72; Fri, 15 Mar 2019 17:52:54 +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 A69992A62D for ; Fri, 15 Mar 2019 17:52:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726487AbfCORwx (ORCPT ); Fri, 15 Mar 2019 13:52:53 -0400 Received: from mail-it1-f194.google.com ([209.85.166.194]:39293 "EHLO mail-it1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726218AbfCORwx (ORCPT ); Fri, 15 Mar 2019 13:52:53 -0400 Received: by mail-it1-f194.google.com with SMTP id l15so12207233iti.4 for ; Fri, 15 Mar 2019 10:52:53 -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=zVS5VHJ0av8yLm6V2IK7TAsLZN7eFuKuNOq2AVl0B/M=; b=cnqnNU+DlAD8vpQgdugVw0Nj94B9PvdG4bVinDKCd1onHjMhRE4DosUrGGla1NfwUZ 7FFr9k/dyJB5JP9YXIDu3KqqvH4fq2f7yHfTeElE89dZE0+YCq6Q5WQGp0IMOgoxqxZ2 B0wu4FJLFh/3U8YBnu1NrU1i61/xjwLs1P6hp+qSDUr/mjRM39kweCDyEDtvIDFdSQSX vDno+lIylWBszWHKCmx3W4Ebl6+HzHYVoLkmoLxdoFbY/ixQ+j8hHzU6ASdk9EQCGN+A d5TQUolIQS5Ck2HFbzd2qZO0BHoHFdJprKsM6SkkoeeQYzqz1bnhtkiJrICnOZHTqR7f EfwA== 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=zVS5VHJ0av8yLm6V2IK7TAsLZN7eFuKuNOq2AVl0B/M=; b=K0phKXHrRI9+oQ5PypSv+0pyqpb/SSWHAXrtF+eZQiMPnaYsNtmYuLedblfu2bWTzI rIqu0b57oaoVjF4OoxBDyPJQw/iojN7O5i0GDIYiXGh7OdY3jMZwoaqnQqjwfqOHey6O tZt8cO5HQkuuJcWNzLHxie2RSkL9JCMcbUiWxyJSKUcswYsNqZ/h0KWkYS1qOj7FG6c+ rlVbRKTQhE6fnRCEJHErXa+YLPBJN4UQC2vA6GjQGTmBd9zwoB1u1f2v0C/5r9eJOA/l 09I+KY9vl77zUmGiGqPTtxTN/t2aorCU14M4yJblVmPGL/YXkKNEsJ2afN2EnYLyCrd1 Kbvw== X-Gm-Message-State: APjAAAVd0TePiFmuU3ZEHWTknApUxWFzhLQILpUSi/6pDgKR/hiFe6+g /SCLkR0s0TRwoBUuTAB0lKCO350= X-Google-Smtp-Source: APXvYqyU2/7a3pTyrYLq+vmjYrScPQbv/NKyNX0mkOLp+BPEbHcdWSaT98foXYJxotjxmlTueH0YNw== X-Received: by 2002:a02:240d:: with SMTP id f13mr3456178jaa.105.1552672372366; Fri, 15 Mar 2019 10:52:52 -0700 (PDT) Received: from localhost.localdomain (c-68-40-189-247.hsd1.mi.comcast.net. [68.40.189.247]) by smtp.gmail.com with ESMTPSA id r2sm1138415itk.5.2019.03.15.10.52.51 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Mar 2019 10:52:51 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 2/6] SUNRPC: Fix the minimal size for reply buffer allocation Date: Fri, 15 Mar 2019 13:51:37 -0400 Message-Id: <20190315175141.68792-2-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315175141.68792-1-trond.myklebust@hammerspace.com> References: <20190315175141.68792-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 We must at minimum allocate enough memory to be able to see any auth errors in the reply from the server. Fixes: 2c94b8eca1a26 ("SUNRPC: Use au_rslack when computing reply...") Signed-off-by: Trond Myklebust --- net/sunrpc/clnt.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 4216fe33204a..310873895578 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -1730,7 +1730,12 @@ call_allocate(struct rpc_task *task) req->rq_callsize = RPC_CALLHDRSIZE + (auth->au_cslack << 1) + proc->p_arglen; req->rq_callsize <<= 2; - req->rq_rcvsize = RPC_REPHDRSIZE + auth->au_rslack + proc->p_replen; + /* + * Note: the reply buffer must at minimum allocate enough space + * for the 'struct accepted_reply' from RFC5531. + */ + req->rq_rcvsize = RPC_REPHDRSIZE + auth->au_rslack + \ + max_t(size_t, proc->p_replen, 2); req->rq_rcvsize <<= 2; status = xprt->ops->buf_alloc(task); From patchwork Fri Mar 15 17:51:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10855375 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 B51E313B5 for ; Fri, 15 Mar 2019 17:52:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E3D82A62D for ; Fri, 15 Mar 2019 17:52:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9285E2AB72; Fri, 15 Mar 2019 17:52:55 +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 479092A62D for ; Fri, 15 Mar 2019 17:52:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726489AbfCORwy (ORCPT ); Fri, 15 Mar 2019 13:52:54 -0400 Received: from mail-it1-f195.google.com ([209.85.166.195]:40432 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726218AbfCORwy (ORCPT ); Fri, 15 Mar 2019 13:52:54 -0400 Received: by mail-it1-f195.google.com with SMTP id l139so12192528ita.5 for ; Fri, 15 Mar 2019 10:52:54 -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=ghVaYxP4lrdAW7QE3DJPRmBO3oJmBjuC2pYalHI4xgE=; b=h7O+/mGyLxlHqgYvuy+u5K5B3iPQGfccDIQ3CTHH4YXgBsGw0aBM1CXxFsnwGPG/IB 0LW+IPu2a8W2obPG1BQxJyDZwWieMjh0cgbk22QXOJchHJkn4qSSjFFccH/KFwldD6LN SmgEjzkfqE6Ly2bi20qugxp1ESTVV/+xvdhxWG80QdGnWZDdEmovPqNN0wSAqCqs9yNo upaG5pjiZdAswusemr3SVGBB/PZUaXUZCLhvQqKSrS3wDP+uEHgEOwRiPv+K0od2pRzf 5g5i8jPaPVJy09QbJzfXCyaKGngHYPPRJeJvrDfSIGLByp/nrnwxfpB9mLfTMkPQpo5p 12YQ== 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=ghVaYxP4lrdAW7QE3DJPRmBO3oJmBjuC2pYalHI4xgE=; b=uFsC+P+6GgWYE4CI7y06uQW2jaOIiqXLA1dV1+6XxHGgapPGWz3/X69CP6v04LRlSa KR+5bnZJsjU+YRhKtjKOeFlkeRA8NHZjNeqJbiEH8aCvtsoiGzXztdDhVnrdVvBU2c90 fhXEty4E4fRcvI5CvQHlzyerwls2DAT0B/5NGmVBMpXqrTbypLCDRVuDD0L6WR1Yvjn+ y6uOzL+9pxU+BIWcTUh8/ZPT6pJFCuRIGlMszTF6dYFnHhUMUzR4lw31sggaupM8Ru9i yt/1fipvLyrNXs0XvykHK+KUD6gzlk+7Nyy3edSgcxrvpUyM5DiNMJaVoVW4EuAK0rzs QbhA== X-Gm-Message-State: APjAAAUiQqmyQb82wtD9VWqi+Xt+D3XOi/L1Fwq0cad4ycTMJS3m66Cz Vf2RaTylfuQBEQqGbWTrjLtwJ3c= X-Google-Smtp-Source: APXvYqzh/DQfKJ/sOTWwEwfSSYx4wVSng7XYD2sY+qMiCjmshK6X4tBq1UrV5xNbNJOvcNlKQdRUFA== X-Received: by 2002:a02:4904:: with SMTP id z4mr3182633jaa.46.1552672373165; Fri, 15 Mar 2019 10:52:53 -0700 (PDT) Received: from localhost.localdomain (c-68-40-189-247.hsd1.mi.comcast.net. [68.40.189.247]) by smtp.gmail.com with ESMTPSA id r2sm1138415itk.5.2019.03.15.10.52.52 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Mar 2019 10:52:52 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 3/6] SUNRPC: Use the ENOTCONN error on socket disconnect Date: Fri, 15 Mar 2019 13:51:38 -0400 Message-Id: <20190315175141.68792-3-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315175141.68792-2-trond.myklebust@hammerspace.com> References: <20190315175141.68792-1-trond.myklebust@hammerspace.com> <20190315175141.68792-2-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 When the socket is closed, we currently send an EAGAIN error to all pending requests in order to ask them to retransmit. Use ENOTCONN instead, to ensure that they try to reconnect before attempting to transmit. This also helps SOFTCONN tasks to behave correctly in this situation. Signed-off-by: Trond Myklebust --- net/sunrpc/xprt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index e096c5a725df..d7117d241460 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -664,7 +664,7 @@ void xprt_disconnect_done(struct rpc_xprt *xprt) spin_lock_bh(&xprt->transport_lock); xprt_clear_connected(xprt); xprt_clear_write_space_locked(xprt); - xprt_wake_pending_tasks(xprt, -EAGAIN); + xprt_wake_pending_tasks(xprt, -ENOTCONN); spin_unlock_bh(&xprt->transport_lock); } EXPORT_SYMBOL_GPL(xprt_disconnect_done); From patchwork Fri Mar 15 17:51:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10855377 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 AAE346C2 for ; Fri, 15 Mar 2019 17:52:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 92BA62A62D for ; Fri, 15 Mar 2019 17:52:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 874A82AB72; Fri, 15 Mar 2019 17:52:56 +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 2F9132A62D for ; Fri, 15 Mar 2019 17:52:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726218AbfCORwz (ORCPT ); Fri, 15 Mar 2019 13:52:55 -0400 Received: from mail-it1-f194.google.com ([209.85.166.194]:38775 "EHLO mail-it1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726496AbfCORwz (ORCPT ); Fri, 15 Mar 2019 13:52:55 -0400 Received: by mail-it1-f194.google.com with SMTP id k193so12214144ita.3 for ; Fri, 15 Mar 2019 10:52:54 -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=K178YlptAS1rbu3+nUSapJpQeyVeZCrBcvjd+Sn51Uo=; b=HI0FCVrsnKXquvyUIf6bIZCyxA4q3lphZbqbEvFmhq8GvNDEIu83TxPbz5FejzibuO RmcNshmFYMA72AhDfLZkFOimfSy4XE7s08dusH0MNi4tnILBXpYI8vmodB2jV414kVpZ LvqnBiIxWShZVEAn6nefQngMx5g0Jxovg7mTlg8r6g0+xYdY5BdA14IprUiiYFfbz4zX qdCEIzdpT2aj3r7qrWFqdEzvrU1iLxEKMIz1U/3Z58dFhqI7mhgGuwQvQarcK0vEUnyu Kbac/Dj19nLmLyat7P1piQ6euX2QJrfsurRdKEo1tyecMkppGoLQjzosaPNKeuGY5N3Y aAzw== 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=K178YlptAS1rbu3+nUSapJpQeyVeZCrBcvjd+Sn51Uo=; b=eXOgjqiVg3z0iDD3len7Ns2e/SKxu9op9KMyo/ObfKDbgXloEH6+nZ6KMaMvLJYEBV EFJc2hioLCv6jGbEbkd6UWR5FH8OPr6XxJZLv2O4+O7QWt9qVszA/04Taa7Ec5aFvePw Z+2vJFwvYHKXhNVKpvSb51R6cP1VCp+mW0oxOh1z6jtURt1dWuJ8PIaIBsQVopcPI68n BpyOVNJpa7ly9Nz6yUU6uozyzewbLbl6ldbKyhVzUVtwcH644nps1eBB1p7dM/BTger1 lppiwsND55vX77VI6fPxnXjH3ATi40HZ4zY6cFUe7S3utvhh95FckihZf0hrtxLQxNMm KpVQ== X-Gm-Message-State: APjAAAXrbYCObj41phncsdeJxWPWUaGbyx4Ufi15Ceut5UGlSwH8f55t WzJAYgzheGz2oOkGPQaIkEg9RlI= X-Google-Smtp-Source: APXvYqwYRFTtDP+SPZYtFxo/Z/hqR96JWeq2Or4z3M/YRG4CUj5WMC+z4YTLrN0vIMxnkfco3vKZcg== X-Received: by 2002:a02:700f:: with SMTP id f15mr409131jac.139.1552672373944; Fri, 15 Mar 2019 10:52:53 -0700 (PDT) Received: from localhost.localdomain (c-68-40-189-247.hsd1.mi.comcast.net. [68.40.189.247]) by smtp.gmail.com with ESMTPSA id r2sm1138415itk.5.2019.03.15.10.52.53 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Mar 2019 10:52:53 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 4/6] SUNRPC: rpc_decode_header() must always return a non-zero value on error Date: Fri, 15 Mar 2019 13:51:39 -0400 Message-Id: <20190315175141.68792-4-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315175141.68792-3-trond.myklebust@hammerspace.com> References: <20190315175141.68792-1-trond.myklebust@hammerspace.com> <20190315175141.68792-2-trond.myklebust@hammerspace.com> <20190315175141.68792-3-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 Ensure that when the "garbage args" case falls through, we do set an error of EIO. Fixes: a0584ee9aed8 ("SUNRPC: Use struct xdr_stream when decoding...") Signed-off-by: Trond Myklebust --- net/sunrpc/clnt.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 310873895578..1f47801e0002 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -2454,7 +2454,7 @@ static noinline int rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) { struct rpc_clnt *clnt = task->tk_client; - int error = -EACCES; + int error; __be32 *p; /* RFC-1014 says that the representation of XDR data must be a @@ -2463,7 +2463,7 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) * undefined results */ if (task->tk_rqstp->rq_rcv_buf.len & 3) - goto out_badlen; + goto out_unparsable; p = xdr_inline_decode(xdr, 3 * sizeof(*p)); if (!p) @@ -2498,9 +2498,10 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) goto out_err; case rpc_garbage_args: trace_rpc__garbage_args(task); + error = -EIO; break; default: - trace_rpc__unparsable(task); + goto out_unparsable; } out_garbage: @@ -2514,11 +2515,6 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) rpc_exit(task, error); return error; -out_badlen: - trace_rpc__unparsable(task); - error = -EIO; - goto out_err; - out_unparsable: trace_rpc__unparsable(task); error = -EIO; @@ -2529,6 +2525,7 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) goto out_garbage; out_msg_denied: + error = -EACCES; p = xdr_inline_decode(xdr, sizeof(*p)); if (!p) goto out_unparsable; @@ -2540,9 +2537,7 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) error = -EPROTONOSUPPORT; goto out_err; default: - trace_rpc__unparsable(task); - error = -EIO; - goto out_err; + goto out_unparsable; } p = xdr_inline_decode(xdr, sizeof(*p)); @@ -2577,8 +2572,7 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) task->tk_xprt->servername); break; default: - trace_rpc__unparsable(task); - error = -EIO; + goto out_unparsable; } goto out_err; } From patchwork Fri Mar 15 17:51:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10855379 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 6B5216C2 for ; Fri, 15 Mar 2019 17:52:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 53CF62A62D for ; Fri, 15 Mar 2019 17:52:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 47D3C2AB72; Fri, 15 Mar 2019 17:52:57 +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 E94142A62D for ; Fri, 15 Mar 2019 17:52:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726527AbfCORw4 (ORCPT ); Fri, 15 Mar 2019 13:52:56 -0400 Received: from mail-it1-f195.google.com ([209.85.166.195]:40437 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726496AbfCORw4 (ORCPT ); Fri, 15 Mar 2019 13:52:56 -0400 Received: by mail-it1-f195.google.com with SMTP id l139so12192653ita.5 for ; Fri, 15 Mar 2019 10:52:55 -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=wFrrKbKR8ieezLBHPq2aOkY3Zb4IiPdPima20uTaGUw=; b=XS8U8gVi2l2xiNS1fm01sTDG19aCExlmzHURirxg77dhP9Ys9ZfrPaTAOXaVWYZCxQ fBhZIDLhjO1ZJjq4qPtezHm5wq5WATDVJ1xo5asZleKyh35ElCWsQHkqrAMgPuwmspNi FGwoO4BmkeQfMQ2k8R2KJc9CWvzuR+NKdJndaIDIVPdlzRBLqzXYS4Ea77WaOLxok4UC zCU5ZlStRbAdGbh/FlWez/1z+uP5tmMQBfVocpJbKOduRLocfkKqSHbdzX+zRlZqSNpm ry1oyHB4tGGB7BdlnMzGZnFOtQEmMU4yBij6egQzPRrFwN6AbtjzrInYHzqfWYj/+xKx mEBw== 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=wFrrKbKR8ieezLBHPq2aOkY3Zb4IiPdPima20uTaGUw=; b=TgXDgnDt5kuyRL0u3Ee9dLWLDWnZG+gGOajpaW5P1f+d354hUdLYpXvUi9HNnOBgB7 1FddxKNs3J5xm6tiEIi7XbRqNdcQ/EgLyFZGHiixJRX2iAA0UPw+uNmdBNItT1HSJ1Pa AYR9Gl3U7Hr3UCEf3ILap2Y0ejrPxZJoFMY/07N1a9J4fd+jjH/o3Vpt7T4Ry63sj61t 7Y/VUvp7pwxTY7OHNKsWVjLXcyxig/Kl9myMTknqi4Z1erxughBi+/I3H+9CZ84Vmgy5 JrE0i8bl/meLAyke/zE1YKYxIq4OB33qaASjjN7SuzFPcVoPSlA0tWGVnMDv8R0ncwdf /HpQ== X-Gm-Message-State: APjAAAXBgBa/S1L9+dW3izarNyupicDYI81MX31LWiuK953ZU0mBaylz wbTd8bUGCkOdgfRJWqhViplpgm4= X-Google-Smtp-Source: APXvYqw1VlusZ27wBireo3hZp4z5lDalqy/0y6Fy5sR+8oCyQF5xChwEEALlUs+58Cic2BZj0sZ+Zw== X-Received: by 2002:a24:4643:: with SMTP id j64mr2676213itb.74.1552672374845; Fri, 15 Mar 2019 10:52:54 -0700 (PDT) Received: from localhost.localdomain (c-68-40-189-247.hsd1.mi.comcast.net. [68.40.189.247]) by smtp.gmail.com with ESMTPSA id r2sm1138415itk.5.2019.03.15.10.52.53 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Mar 2019 10:52:54 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 5/6] SUNRPC: Handle the SYSTEM_ERR rpc error Date: Fri, 15 Mar 2019 13:51:40 -0400 Message-Id: <20190315175141.68792-5-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315175141.68792-4-trond.myklebust@hammerspace.com> References: <20190315175141.68792-1-trond.myklebust@hammerspace.com> <20190315175141.68792-2-trond.myklebust@hammerspace.com> <20190315175141.68792-3-trond.myklebust@hammerspace.com> <20190315175141.68792-4-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 Handle the SYSTEM_ERR rpc error by retrying the RPC call as if it were a garbage argument. Signed-off-by: Trond Myklebust --- net/sunrpc/clnt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 1f47801e0002..cb73d6c25857 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -2497,6 +2497,7 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr) error = -EOPNOTSUPP; goto out_err; case rpc_garbage_args: + case rpc_system_err: trace_rpc__garbage_args(task); error = -EIO; break; From patchwork Fri Mar 15 17:51:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10855381 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 826DC6C2 for ; Fri, 15 Mar 2019 17:52:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6B6C42A62D for ; Fri, 15 Mar 2019 17:52:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5FFBF2AB72; Fri, 15 Mar 2019 17:52:58 +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 1239A2A62D for ; Fri, 15 Mar 2019 17:52:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726556AbfCORw5 (ORCPT ); Fri, 15 Mar 2019 13:52:57 -0400 Received: from mail-io1-f49.google.com ([209.85.166.49]:38352 "EHLO mail-io1-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726496AbfCORw5 (ORCPT ); Fri, 15 Mar 2019 13:52:57 -0400 Received: by mail-io1-f49.google.com with SMTP id v4so7961660ioj.5 for ; Fri, 15 Mar 2019 10:52:56 -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=Q3b0beomq0EufQKy0zCGXv8Yfy3DIKlGtoWL89UZoR8=; b=Cd3ivY7NZKu8GL2DQAEuaeEY2cPudnBMR71GDWMuSCMzX2cO8/7WTswqra/3H0WWjx P3nRI6BWl6aiu2ZuZGndnRWfceCpBbmZBuZb3KLGpSFy5X9oU/xLiKb7Ia8NQyOJ8xZn xo4yvfk5UC6OcD0mXYEyARWGRDlxl9JKFMKvmdIl5N+w6y459ZZNFPucLp57s9CPKNkm 8ij+PrBfRGueVjvQ8quJikyT+xY4KbrnKBx8ebzAGwMMVsox1xxRhCM7YY5+tG/6ux7n 9RY+4wuBuU5uaMFDREtSrOhSVI4JUr4UVVGLcwAcDbbvcC1/co/brOAN8cjXb6XdlwSu WGhg== 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=Q3b0beomq0EufQKy0zCGXv8Yfy3DIKlGtoWL89UZoR8=; b=FkRVU5rALFmoffHFF7KS/5Px7z5jVdDLVTSETDry5BcRZbi8cawm0qL/kC8MHhJtZ+ Y13Xv0QoysDadi3JxOqzNSEpDY5j4WVTJPY8HyaQ9Wgnj1eg8hHzVMH2JIPuo7miEQty 9+BFMUh+a6J5LJEim5qnx0Wbf3dL5uBbbOa9KcAA5kcOWs7Zb4mnuvCOCe2yBNzOcJ1G ZHDJW1T5qlq27q8naX/INovRirO4JSuCpfy82OtYydWYmoPJlZWWMBrC1ecY0yzVPTYD bfyjr41DcuUvpSKriZ0u+SqL8DSSmsPZldsLPcOIqTtpQQqNamwJqVTDgep/KNfqMbZK xyZw== X-Gm-Message-State: APjAAAVph6ENiMKX83Xancw/zj2XUI5M9LBMM2RBOvZKe9UovugViDUc ouWagxIQz39xKWC7EJlSmuZQ69U= X-Google-Smtp-Source: APXvYqzMIsatBKD84muGMrdJGiKH1awMe1/+X7VjOc6NsKH1MGRHzT4jA7DOWXUoBfaanqyfT64REw== X-Received: by 2002:a6b:641a:: with SMTP id t26mr2956480iog.204.1552672375611; Fri, 15 Mar 2019 10:52:55 -0700 (PDT) Received: from localhost.localdomain (c-68-40-189-247.hsd1.mi.comcast.net. [68.40.189.247]) by smtp.gmail.com with ESMTPSA id r2sm1138415itk.5.2019.03.15.10.52.54 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Mar 2019 10:52:55 -0700 (PDT) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 6/6] SUNRPC: Remove redundant check for the reply length in call_decode() Date: Fri, 15 Mar 2019 13:51:41 -0400 Message-Id: <20190315175141.68792-6-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315175141.68792-5-trond.myklebust@hammerspace.com> References: <20190315175141.68792-1-trond.myklebust@hammerspace.com> <20190315175141.68792-2-trond.myklebust@hammerspace.com> <20190315175141.68792-3-trond.myklebust@hammerspace.com> <20190315175141.68792-4-trond.myklebust@hammerspace.com> <20190315175141.68792-5-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 Now that we're using the xdr_stream functions to decode the header, the test for the minimum reply length is redundant. Signed-off-by: Trond Myklebust --- net/sunrpc/clnt.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index cb73d6c25857..228970e6e52b 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -2392,9 +2392,6 @@ call_decode(struct rpc_task *task) WARN_ON(memcmp(&req->rq_rcv_buf, &req->rq_private_buf, sizeof(req->rq_rcv_buf)) != 0); - if (req->rq_rcv_buf.len < 12) - goto out_retry; - xdr_init_decode(&xdr, &req->rq_rcv_buf, req->rq_rcv_buf.head[0].iov_base, req); switch (rpc_decode_header(task, &xdr)) { @@ -2405,7 +2402,6 @@ call_decode(struct rpc_task *task) task->tk_pid, __func__, task->tk_status); return; case -EAGAIN: -out_retry: task->tk_status = 0; /* Note: rpc_decode_header() may have freed the RPC slot */ if (task->tk_rqstp == req) {