From patchwork Fri Aug 14 15:05:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 7015891 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 35C26C05AC for ; Fri, 14 Aug 2015 15:06:02 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5ACE9207F9 for ; Fri, 14 Aug 2015 15:06:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F0095207DD for ; Fri, 14 Aug 2015 15:05:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755191AbbHNPF6 (ORCPT ); Fri, 14 Aug 2015 11:05:58 -0400 Received: from mail-ig0-f170.google.com ([209.85.213.170]:38247 "EHLO mail-ig0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754683AbbHNPF5 (ORCPT ); Fri, 14 Aug 2015 11:05:57 -0400 Received: by igfj19 with SMTP id j19so13849338igf.1 for ; Fri, 14 Aug 2015 08:05:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=vyPsVssX/qEG55JGh16mlve6MvqB0niwFb0xrieAU6M=; b=AGozSNTq+0sWOvx+jukff1+pjWSDEpTetRO02uHnop4Fu2zrJBt8mqGNvvf0lR2lOj RpHo2qanPg+kKvpQJp8v9Rc7/aFlQvQQdTrZ7f5wmQg9bn9JxfDXIVbyowxB9BRPxCOs GsS4MoarmFEfJBglM4fYn1EzCVLUDwi7LdOg1I96emN8YgiCQWLw8dQxsJ37/G+Ct1YH e/iLJppiC0TLzDzBeyDe6ZvbeCz7QLQhVEz1N2eP5KtHfCo4/0X/vuZHZ2cTiqIJX5V0 TqqitCKXjZsq0c4AONQCr3ooVtXQMLYZN2EW669bUd6mX56uZnEVT/JClI7HFieof4Ws fBsg== X-Gm-Message-State: ALoCoQlFqmzPqnk6AJ3P/J9WN+RZfwKvPu4PTp66zwYUCRDsmk691kMLLXg2qGgpZGrGYNkFXshu X-Received: by 10.50.138.193 with SMTP id qs1mr3323936igb.2.1439564757390; Fri, 14 Aug 2015 08:05:57 -0700 (PDT) Received: from leira.trondhjem.org.localdomain ([50.127.245.118]) by smtp.gmail.com with ESMTPSA id q79sm5082330ioi.0.2015.08.14.08.05.56 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Aug 2015 08:05:57 -0700 (PDT) From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH] SUNRPC: Fix a thinko in xs_connect() Date: Fri, 14 Aug 2015 11:05:55 -0400 Message-Id: <1439564755-4240-1-git-send-email-trond.myklebust@primarydata.com> X-Mailer: git-send-email 2.4.3 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Spam-Status: No, score=-7.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP It is rather pointless to test the value of transport->inet after calling xs_reset_transport(), since it will always be zero, and so we will never see any exponential back off behaviour. Also don't force early connections for SOFTCONN tasks. If the server disconnects us, we should respect the exponential backoff. Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust --- net/sunrpc/xprtsock.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 0030376327b7..86ed778bb18b 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -2279,13 +2279,14 @@ static void xs_connect(struct rpc_xprt *xprt, struct rpc_task *task) WARN_ON_ONCE(!xprt_lock_connect(xprt, task, transport)); - /* Start by resetting any existing state */ - xs_reset_transport(transport); - - if (transport->sock != NULL && !RPC_IS_SOFTCONN(task)) { + if (transport->sock != NULL) { dprintk("RPC: xs_connect delayed xprt %p for %lu " "seconds\n", xprt, xprt->reestablish_timeout / HZ); + + /* Start by resetting any existing state */ + xs_reset_transport(transport); + queue_delayed_work(rpciod_workqueue, &transport->connect_worker, xprt->reestablish_timeout);