Received: by 10.213.65.68 with SMTP id h4csp172605imn; Fri, 30 Mar 2018 17:22:56 -0700 (PDT) X-Google-Smtp-Source: AIpwx491t0Qr6eI5js92wWHdK5bahgG/da7vzoeA7JFu0wNEKW5I4GKhMihkzAT0tsmJL7jeCrJi X-Received: by 2002:a17:902:8c88:: with SMTP id t8-v6mr988611plo.329.1522455776734; Fri, 30 Mar 2018 17:22:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522455776; cv=none; d=google.com; s=arc-20160816; b=NrHvQXMdRH55a5FGj/zf79X3JwSnq9nLiGud2XiREhO/jdKaQBoNFWDRiPMfCrorUH Kcpt9kvs+GYVyAHQoiHNbV4WhQ4bO89NIXJF/N1Cyem6pYPyi6fkOG2Yn8kBWoAOb1jB CWCBpK6xfnhAV6+kOhOGbnTLB1OHDKflAneuwp3DWzxXIq4tYnyZhQT97CcrI/1vtZz5 MXNcXECtICv4+WEqVblaEzdEzN76mfe9P0cadGMFXvP/x1FqS48AlarZnYlzqOPWaBNR dVmge24conxZgJnaoqI/ZQAxSJq1ZfhhvZH6mkLVoQjfCSVjoa4+9Q7anek6IwYYXa9k bIfA== 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=IKt9IOcHK6YsySa/HqCFdA1iY7rI6g3wDcUf5w71AKI=; b=wDFFxhRLdUPqPEQjVn40/Y9CHBPeRkFhkjO07qkwGldhYGr2BXlpu5V106hamYFXkv ZHwc6BTigjD+D7Bv5GfDdv1PNVmClmtG+DKVmYXwkwSvLuWjgQvBAr/2V0aIa1tAt+TG /oYVUG6WS+9WB1Ry/OVFiGLwlJCkAuaKA/Hct8w/Hxnnyg6HfOWDfBkc+0FuhOX5VaIk llE5iZYvj/wGzBYEKiYZK0v3kWgQT4GDZ52+BrmacHF0s1ibajLinGgbpFn9se6I3V2d 7tYP9IEn1Tn9bktfpuhEcQMaxLTEnaOW1ebMndRWQGSASDYxL3YcDBEbGRYRlOju6RcA eQlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=uDb+xy1x; 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 a125si3273746pfb.347.2018.03.30.17.22.31; Fri, 30 Mar 2018 17:22:56 -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=uDb+xy1x; 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 S1752781AbeCaAUR (ORCPT + 99 others); Fri, 30 Mar 2018 20:20:17 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:37454 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752384AbeCaAUP (ORCPT ); Fri, 30 Mar 2018 20:20:15 -0400 Received: by mail-pg0-f67.google.com with SMTP id n11so5902850pgp.4; Fri, 30 Mar 2018 17:20:15 -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=IKt9IOcHK6YsySa/HqCFdA1iY7rI6g3wDcUf5w71AKI=; b=uDb+xy1xmJlqRl0iwa3fJMNFoGirrLlqL+gtBvE+9EsIATZUB9QYHlmlWDqq2Avlfo zBuo2SN0w4dmJzOVkxTaUeIv4Na6ukz5UUqz5aVnMueFR5er2jF8gko3VUnDnKYEz7tG fgLpIX8Ra9wwqhDy9QsyMkluA2n2eFCF7N2/BSbKUBF+dVR8MUGwQzu/9p/T8JcgcCpZ Es/uM/7xV+IOzQDp7smuKOB0kcbl72enpmDtj96cBCTCetQRBuDIb1PrJZ2LMtenKQIE XJ+134eBf8T0DHskC1P8CixN2S/JV2FUnDujIdaTuCZqfF2jIHLW1QK6wckz0NjNr/C6 v23g== 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=IKt9IOcHK6YsySa/HqCFdA1iY7rI6g3wDcUf5w71AKI=; b=EZwORmUATZ6koNyfgYXDF0yYtsxr1cbupOa0Mwxbtd6genaIWmL/KaZb65vyxzH67B kIkYvEBkmnly/Rbt5rlNbUbS/mRAI6wCtSuAxe1H4ClZrmZkxkhnsV62O3x8PiyryE8g i/f6V3Bb5iUKf735GZ8XzR92Xg2HXI8NjYdF9tY3sVx3a9I7aQccoaL8HrAMpCe6IjKu EiUl99W2LjkdLKMDRjH3pt3TWadQmiwPi1rNp+rYqVrUlZ54T7IgtReZSYnd63PBvTnB WwG1TajXag7/Snp68rB9K6fmPjBIcR6OyiNlbcuwyDAJeXsIs4chQGHUwwI2i7CD5HpZ y1TA== X-Gm-Message-State: AElRT7E31H3SIwe8edVNeBNRrWZ/2gVnGetEGk9bKu5xiGo0QJIk4LaA Y86ULGtDOYTSS0NvJyEue6JFmlNuCR10NfiwSLE= X-Received: by 2002:a17:902:1006:: with SMTP id b6-v6mr1031945pla.252.1522455614648; Fri, 30 Mar 2018 17:20:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.152.97 with HTTP; Fri, 30 Mar 2018 17:19:54 -0700 (PDT) In-Reply-To: References: <20180330221636.32512-1-longli@linuxonhyperv.com> From: Steve French Date: Fri, 30 Mar 2018 19:19:54 -0500 Message-ID: Subject: Re: [PATCH 1/2] cifs: smbd: avoid reconnect lockup To: ronnie sahlberg Cc: Long Li , 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 merged into cifs-2.6.git for-next added cc:stable On Fri, Mar 30, 2018 at 5:23 PM, ronnie sahlberg wrote: > 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 > -- > 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 -- Thanks, Steve