Received: by 10.213.65.68 with SMTP id h4csp104841imn; Fri, 30 Mar 2018 15:25:40 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+wD7e2WVJ4+cz6jAh95iijg8AFu1VWmL/Kj60XH7JdApDrhpBYhqX+djGXiW0ijfbPlPSQ X-Received: by 2002:a17:902:e5:: with SMTP id a92-v6mr772433pla.26.1522448740720; Fri, 30 Mar 2018 15:25:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522448740; cv=none; d=google.com; s=arc-20160816; b=lnWNtVb6r06dTD2mmzMVZvx/mgU7vpEhCQpZrlnJocZKwi8vy/9DzpNIh99d8XT4EF 8Lf0+jPMazeHQyZXVdD/x3Uw/ipPUccDCQHfY6ICKyt8oKNFbl1JGUFxggmfc6SUahF3 yF8lilaec3LtsS9AfBz2udwkcxOgvul52y5hikaFyZxuE4CYccJviQFIe2nq5qez49YF 77CDDQP++ponuN9kmE3dCGlf+NJG7dz4mxUZcfQSV85lrRSCqbW3n8mCExXVMibtUBuw CirPIFYCiwdNb5qBPGKdLWCqGyKdXJFL7FnjtQop7JaWfCOUSTQi2IYypT8TtpV7CmnY VS+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=+HJQ2058oBHjS/6zAapl4ItQGA8S2o04oCgXrpshZUE=; b=sBeE7FqMcT/RBWaUitd+xJArAfYkCPbklHLYN5XQizXImPQOaG/eCXNlcz/+IaHSTR wikc5+bE5YXR+ijggFqd7TJP9SlNmInrw1rQVQ/yKLhBG7iWI/o7PKUHE1KkcxUpcFeQ JesWBIMU78govouuUSREApclefATO26vJP2S+yarDSVj6JS+mOudW2Zqb2MyFFz75oEa aLd1qiIzsWU1uG0vCcyFBGxZ1fAyEIU545MKkinRG3XIPcLEbTrOpmXG1JQ8ExaB66ht HCLNpNSeKBe5Slv94IlPo00MqQZu6xRNiudTs0q16y9bS7q4Q7a/ODOBSbmNTv9s9kQ6 DmOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=sXa+5OlU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 99-v6si9230736pla.468.2018.03.30.15.25.26; Fri, 30 Mar 2018 15:25:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=sXa+5OlU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752792AbeC3WXv (ORCPT + 99 others); Fri, 30 Mar 2018 18:23:51 -0400 Received: from mail-qk0-f195.google.com ([209.85.220.195]:42576 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752282AbeC3WXu (ORCPT ); Fri, 30 Mar 2018 18:23:50 -0400 Received: by mail-qk0-f195.google.com with SMTP id b198so10243725qkg.9; Fri, 30 Mar 2018 15:23:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+HJQ2058oBHjS/6zAapl4ItQGA8S2o04oCgXrpshZUE=; b=sXa+5OlU6KMABOfsY/tCy6CaLzeRX9ef4Vnj1VR0plQQ5DJtpYgH3B3EtDPCi+jFe8 usFQOpz0B86gU2M+PfcO3yIIrEpvT6wIQHS/boPnFSxDL0OQ6hNP1NEsjObg4ppEwHDT a6iK7d8Hn5iBy2dFTOzyq/Mz+blzza8fWHgctK6+DTAxVB1XQOF4UoiQgqUjWLl/K6Bb VUN+8N4EZbXAnw4bW2jngBDJM+JXbPCvRNctONH1P696fxP1JjV9+Ei1cMrL/gdlRg45 zW7xdyQOd0IY3EnCB0vdveRu8lY8Xk9wxJQj5vF7beczr9px7vv3/KaWPFcwIvcAcwva wosg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=+HJQ2058oBHjS/6zAapl4ItQGA8S2o04oCgXrpshZUE=; b=PsaACDRyIUdswmqyy4Cnu5baqFGayyRBV8sHU7HwIUW2Tf92GJYZQCCt/vKcq02OeB 40F63TCCsAbPHHCJyQfffVK88/cWq1hn3YMo/IX5LNLoPQhGcu6MEORlQ9YGnlvVNLSq duyT+Mjfl05lgXWsV0PUHitOi9gDqV3KhXy52JwSrthxUOuMtw7aeNAu7hm/ubjyQ/GV aW7XjEPMasJ4lmsHqtZshpFQ43QeFwSbvoEwwiby0QNOV2dErFq4wPq8wSxRJPg5fzCg Iig/YZmxQdtPZ99N/MOFKbF5PYvni4wdn08nAnfNODaqd6JZA6LN9bPJ5j+wcDB3W50u 26gA== X-Gm-Message-State: ALQs6tC5sW3WHtGIfN3q0yVeyU+Q6MRTK/92RZWnlJDkA5yuMyOR4xjt Jf3A2V7ebxIX4xIyDAZxQjKgWGfpnOTWLQGDpuE= X-Received: by 10.55.74.19 with SMTP id x19mr1037563qka.345.1522448629367; Fri, 30 Mar 2018 15:23:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.168.232 with HTTP; Fri, 30 Mar 2018 15:23:48 -0700 (PDT) In-Reply-To: <20180330221636.32512-1-longli@linuxonhyperv.com> References: <20180330221636.32512-1-longli@linuxonhyperv.com> From: ronnie sahlberg Date: Sat, 31 Mar 2018 08:23:48 +1000 Message-ID: Subject: Re: [PATCH 1/2] cifs: smbd: avoid reconnect lockup To: Long Li Cc: Steve French , linux-cifs , "samba-technical@lists.samba.org" , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Looks good to me (both patches) Reviewed-by: Ronnie Sahlberg On Sat, Mar 31, 2018 at 8:16 AM, Long Li wrote: > From: Long Li > > During transport reconnect, other processes may have registered memory > and blocked on transport. This creates a deadlock situation because the > transport resources can't be freed, and reconnect is blocked. > > Fix this by returning to upper layer on timeout. Before returning, > transport status is set to reconnecting so other processes will release > memory registration resources. > > Upper layer will retry the reconnect. This is not in fast I/O path so > setting the timeout to 5 seconds. > > Signed-off-by: Long Li > --- > fs/cifs/smbdirect.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/fs/cifs/smbdirect.c b/fs/cifs/smbdirect.c > index 5aa0b54..3f7883e 100644 > --- a/fs/cifs/smbdirect.c > +++ b/fs/cifs/smbdirect.c > @@ -1498,8 +1498,8 @@ int smbd_reconnect(struct TCP_Server_Info *server) > log_rdma_event(INFO, "reconnecting rdma session\n"); > > if (!server->smbd_conn) { > - log_rdma_event(ERR, "rdma session already destroyed\n"); > - return -EINVAL; > + log_rdma_event(INFO, "rdma session already destroyed\n"); > + goto create_conn; > } > > /* > @@ -1512,15 +1512,19 @@ int smbd_reconnect(struct TCP_Server_Info *server) > } > > /* wait until the transport is destroyed */ > - wait_event(server->smbd_conn->wait_destroy, > - server->smbd_conn->transport_status == SMBD_DESTROYED); > + if (!wait_event_timeout(server->smbd_conn->wait_destroy, > + server->smbd_conn->transport_status == SMBD_DESTROYED, 5*HZ)) > + return -EAGAIN; > > destroy_workqueue(server->smbd_conn->workqueue); > kfree(server->smbd_conn); > > +create_conn: > log_rdma_event(INFO, "creating rdma session\n"); > server->smbd_conn = smbd_get_connection( > server, (struct sockaddr *) &server->dstaddr); > + log_rdma_event(INFO, "created rdma session info=%p\n", > + server->smbd_conn); > > return server->smbd_conn ? 0 : -ENOENT; > } > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html