Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp842088ybl; Fri, 31 Jan 2020 08:58:06 -0800 (PST) X-Google-Smtp-Source: APXvYqwF+i8UcEcTb/sRRtvsLzlreL1my3976I+wDTLsmYAP7ak/rIIaOmFwLPChkN6Ratu3kOWU X-Received: by 2002:a54:450d:: with SMTP id l13mr7116982oil.117.1580489886322; Fri, 31 Jan 2020 08:58:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580489886; cv=none; d=google.com; s=arc-20160816; b=NTB/pZqBd10Y9U+e3squC5N8HmvF8wP5y/LxVCYPKcvtvtc5XMTIrEIsyTnQb1Fmgr XGR9wVdE+WRRET9Dk2cWle1mANfo34f1eXUdQJCvcfCBukBwIB2UNm9267H5XGuVlTeW Yk8LT/2k5DzQ0bhOrPft3GMWEtuJGbdW8dKTunc36ncu7E+DGXpvb3BqGNjplStE+pB6 aX9giMNZfYp3RjPu2Pt4ATBBP+iqhhQZQd3CIf66ufWsY9xOhlN6wqVRgy6qGnoaYKSz 4yOOjwxvTZ/hCbl/FevMOwDi741CxIG+N9qvWIZTYMOwOIUVyA70fHdSJKWiyrH+GYOO 3GIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=uU4/YNk3YheU2GlayAYAG2smNmvbjK9oQzG1XeeKCUQ=; b=n4PMDob5M/eJ9NCciZefogLcfUWkNFGidS0RpJ8wwMRIW+dRCQMw9+CyWmWNFNZvBr CC/T2PcRWv9tUA0PCVi/rAygw3Yjpxc1dSszxRUYE3JWvaUxb1NggpYCoWBepTCwt2wp ltBL/OmSmqvDSbMMQ86im65G1Jap7Coc0R2X1C/iblgUxmoL1PsULrYCYtj8Uyg3mt4I eO7GOtdqBs4wVMoVQMF+I+nc5bfpqjQiWaeJNogF5/TIQ2rLFUTktxUIIuQBSje9g+Lg 1NfNF+r8lG+mwoje4pDSWuxmifPivOBEf6iR/wpudSaTCCaSuOJ8oLScZOUlOSkPTOgb Gdhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ZSzzWnjZ; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-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 e9si4936039otk.318.2020.01.31.08.57.42; Fri, 31 Jan 2020 08:58:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-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=ZSzzWnjZ; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-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 S1726668AbgAaQ5H (ORCPT + 99 others); Fri, 31 Jan 2020 11:57:07 -0500 Received: from mail-yw1-f68.google.com ([209.85.161.68]:41315 "EHLO mail-yw1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726604AbgAaQ5G (ORCPT ); Fri, 31 Jan 2020 11:57:06 -0500 Received: by mail-yw1-f68.google.com with SMTP id l22so5332303ywc.8 for ; Fri, 31 Jan 2020 08:57:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=uU4/YNk3YheU2GlayAYAG2smNmvbjK9oQzG1XeeKCUQ=; b=ZSzzWnjZnTpzry33K7jmDej0wDA4kTuqEdsos6ljNLltJ+/9ujdNmFkCFi6o1REtHj 2TMJv6osXlOsJIwfoLiIoKae40soWZS65F9rx9evUeYMk+Avq7nRAFYeYFPpX8aYkSuy RMoJPOnWhO3aab4ANpVkk6ggANnaIrv3Tp7/U8ylInEkdDp9tQNeHdD4O7aIYinPRoi5 GCwNEcMPJgJVEMqyxufIxV6HK511vDUrfC1/2QVrtMB4XeRRxXNOrRMauo9ODOVYsmFI +xw5uiAyH6Ku2tGh3Na/RTWheJxTYQCtaH8AlSNGcldSuXeSW+9WKIubKZxSj4OmF4Fa Rmbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=uU4/YNk3YheU2GlayAYAG2smNmvbjK9oQzG1XeeKCUQ=; b=RanYATAEvP9wYHClGBDtpj8s85dgL8R2SqOcT2zero6EWg3ChRXyrFrIhNsKE/vJ9I 1KVD6weUkkjQe4YgxmAqVFiUvz2ouNbukHmc55NlKdxQ662jg5J6XODAS3uhW1yoC1Uy ena+jznTHAG4ngMY34J/tz6aWT/dWl8OTemA5KiNCw9VuTz901EEWfhUk6d/mgKfIoMK pBu6Qp9Gi+qgpwZdkF9Q08dEgD7CnNp1f4j7ZBN9GdIN5pRqJUZdJDkGXr6cBx+s1gi4 C6orOSkkQaZ1fCkjS1nBdDt3wbZl+hcjJvcRgsMDemk99IUmnPc7CCoaHXwI4DjCifT0 bbuQ== X-Gm-Message-State: APjAAAXKxzaigGw55AJd3Pz8pV0qsRqzKvR2ym7xPHa6pzrvuL2wqbr6 olbOebXI+x3ERmQOpfWaqHo= X-Received: by 2002:a81:780b:: with SMTP id t11mr8208404ywc.117.1580489825684; Fri, 31 Jan 2020 08:57:05 -0800 (PST) Received: from Olgas-MBP-201.attlocal.net (172-10-226-31.lightspeed.livnmi.sbcglobal.net. [172.10.226.31]) by smtp.gmail.com with ESMTPSA id s3sm4466993ywf.22.2020.01.31.08.57.04 (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 31 Jan 2020 08:57:04 -0800 (PST) From: Olga Kornievskaia To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org Subject: [PATCH 1/1] NFSv4.0 encode nconnect-enabled client into clientid Date: Fri, 31 Jan 2020 11:57:02 -0500 Message-Id: <20200131165702.1751-1-olga.kornievskaia@gmail.com> X-Mailer: git-send-email 2.10.1 (Apple Git-78) Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Olga Kornievskaia It helps some servers to be able to identify if the incoming client is doing nconnect mount or not. While creating the unique client id for the SETCLIENTID operation add nconnect=X to it. Signed-off-by: Olga Kornievskaia --- fs/nfs/nfs4proc.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 402410c..a90ea28 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -5950,7 +5950,7 @@ static void nfs4_init_boot_verifier(const struct nfs_client *clp, return 0; rcu_read_lock(); - len = 14 + + len = 14 + 12 + strlen(clp->cl_rpcclient->cl_nodename) + 1 + strlen(rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_ADDR)) + @@ -5972,13 +5972,15 @@ static void nfs4_init_boot_verifier(const struct nfs_client *clp, rcu_read_lock(); if (nfs4_client_id_uniquifier[0] != '\0') - scnprintf(str, len, "Linux NFSv4.0 %s/%s/%s", + scnprintf(str, len, "Linux NFSv4.0 nconnect=%d %s/%s/%s", + clp->cl_nconnect, clp->cl_rpcclient->cl_nodename, nfs4_client_id_uniquifier, rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_ADDR)); else - scnprintf(str, len, "Linux NFSv4.0 %s/%s", + scnprintf(str, len, "Linux NFSv4.0 nconnect=%d %s/%s", + clp->cl_nconnect, clp->cl_rpcclient->cl_nodename, rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_ADDR)); @@ -5994,7 +5996,7 @@ static void nfs4_init_boot_verifier(const struct nfs_client *clp, size_t len; char *str; - len = 10 + 10 + 1 + 10 + 1 + + len = 10 + 10 + 1 + 10 + 1 + 12 + strlen(nfs4_client_id_uniquifier) + 1 + strlen(clp->cl_rpcclient->cl_nodename) + 1; @@ -6010,9 +6012,9 @@ static void nfs4_init_boot_verifier(const struct nfs_client *clp, if (!str) return -ENOMEM; - scnprintf(str, len, "Linux NFSv%u.%u %s/%s", + scnprintf(str, len, "Linux NFSv%u.%u nconnect=%d %s/%s", clp->rpc_ops->version, clp->cl_minorversion, - nfs4_client_id_uniquifier, + clp->cl_nconnect, nfs4_client_id_uniquifier, clp->cl_rpcclient->cl_nodename); clp->cl_owner_id = str; return 0; @@ -6030,7 +6032,7 @@ static void nfs4_init_boot_verifier(const struct nfs_client *clp, if (nfs4_client_id_uniquifier[0] != '\0') return nfs4_init_uniquifier_client_string(clp); - len = 10 + 10 + 1 + 10 + 1 + + len = 10 + 10 + 1 + 10 + 1 + 12 + strlen(clp->cl_rpcclient->cl_nodename) + 1; if (len > NFS4_OPAQUE_LIMIT + 1) @@ -6045,9 +6047,9 @@ static void nfs4_init_boot_verifier(const struct nfs_client *clp, if (!str) return -ENOMEM; - scnprintf(str, len, "Linux NFSv%u.%u %s", + scnprintf(str, len, "Linux NFSv%u.%u nconnect=%d %s", clp->rpc_ops->version, clp->cl_minorversion, - clp->cl_rpcclient->cl_nodename); + clp->cl_nconnect, clp->cl_rpcclient->cl_nodename); clp->cl_owner_id = str; return 0; } -- 1.8.3.1