From patchwork Fri Aug 22 19:11:07 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 4766721 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id D52839F37E for ; Fri, 22 Aug 2014 19:11:12 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1847D20158 for ; Fri, 22 Aug 2014 19:11:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 47B6320117 for ; Fri, 22 Aug 2014 19:11:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751118AbaHVTLK (ORCPT ); Fri, 22 Aug 2014 15:11:10 -0400 Received: from mail-ie0-f171.google.com ([209.85.223.171]:63719 "EHLO mail-ie0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750879AbaHVTLJ (ORCPT ); Fri, 22 Aug 2014 15:11:09 -0400 Received: by mail-ie0-f171.google.com with SMTP id at1so6965117iec.2 for ; Fri, 22 Aug 2014 12:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:subject:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=q8X4/k3O14UMQfO3hqWGWOGG8F481x+0jSxGz4Md22w=; b=jsPoeyP7LvolLkZyKbUWJKMYhIsY38S/TUU4S/reGQq3OcxF7op8d+ojRruejVabJH gcOvL9v9/Zsxd7K1DcsfThGpXR2pgkdqxxS4acahmLCsKboRWNhDzVcodK+N73KoSdYQ J1k3YKmv98HSIjChiUBD9axlUIHDp5DnoO+OPirPH92kiQ5TY4bBMDe/832RH00+c8bA tvcj1GvT4YmQeOf0D4uFyNwKSKr1I2E7G6rW7FDH6wLkjK8oZ1Cml3nZs9qyLWvs7hz4 Ws2fSUdWv6evuKJw2rEaw7XNUdso8pvbtBZVJCjr50pE5Pu66j4ZsFy+wLIX8+WYWiq7 qXVQ== X-Received: by 10.42.81.146 with SMTP id z18mr14714ick.94.1408734669037; Fri, 22 Aug 2014 12:11:09 -0700 (PDT) Received: from klimt.1015granger.net (c-68-40-85-241.hsd1.mi.comcast.net. [68.40.85.241]) by mx.google.com with ESMTPSA id vl4sm1106317igb.3.2014.08.22.12.11.08 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Aug 2014 12:11:08 -0700 (PDT) From: Chuck Lever Subject: [PATCH 3/4] nfsd: Mark back channel down if SESSION4_BACK_CHAN is clear To: bfields@fieldses.org Cc: linux-nfs@vger.kernel.org Date: Fri, 22 Aug 2014 15:11:07 -0400 Message-ID: <20140822191107.3883.84107.stgit@klimt.1015granger.net> In-Reply-To: <20140822190835.3883.7581.stgit@klimt.1015granger.net> References: <20140822190835.3883.7581.stgit@klimt.1015granger.net> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 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.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,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 If a client indicates via CREATE_SESSION that no back channel should be used on the existing connection, mark the client's cl_cb_state DOWN instead of leaving it UNKNOWN. Otherwise, a fresh session is created without an operational backchannel, but the server never asserts SEQ4_STATUS_CB_PATH_DOWN. Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index a45f244..d7cfd8b 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1429,6 +1429,9 @@ static void init_session(struct svc_rqst *rqstp, struct nfsd4_session *new, stru list_add(&new->se_perclnt, &clp->cl_sessions); spin_unlock(&clp->cl_lock); + if (!(cses->flags & SESSION4_BACK_CHAN)) + clp->cl_cb_state = NFSD4_CB_DOWN; + { struct sockaddr *sa = svc_addr(rqstp); /*