From nobody Sun Jun 14 17:35:13 2026 Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 35A616F2F2 for ; Sat, 4 Apr 2026 14:28:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775312926; cv=none; b=nb3JIw9Gpj7IXDqns0aktGvwO4PwH5lIKDUpqBgf5iXCU16sazHlQrlUAz5JGc8SJm+ddSn2rXMikpDXb2zaWVf6xBCm+Dm3nVODtnE7pEd/wu15d+rZ7C0QPak1WXScrtCfYcc5lPr4Mr6qwDOGegcHnLup2BIImkAaQks/3XI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775312926; c=relaxed/simple; bh=xwE5t0LG/3F20TNNrUtGY613jux+lpvRpheRVJYPn+g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XTHgeoRa4010CBCMt4wfpDtovSmoQzstTWuPFu2i7+BFpUkx6KWU3I1sN60BAVyyfIiWRBSMuiMg0HtwY55bxpWZ9SrOQoVpKVElBDnXAhE8aoKnihqmxVbR2FxIlmO1Zhz2isC02zImogWH0mnH4TwW2DbSXdfjj1Pki7IRpRI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ggOZHdBH; arc=none smtp.client-ip=209.85.222.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ggOZHdBH" Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-8d0288d24f6so395114385a.0 for ; Sat, 04 Apr 2026 07:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775312924; x=1775917724; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nna7XikjSIt8v38EvLKlFvQXyQgfQaOAHmwwtVCsG/8=; b=ggOZHdBHrDjcOv7oaJE0ZTbBuKP9Ksy+k0L9Vz5jaPVXvWawfl1xauTAiYdREEu/it 9s3p5cMhrlQnYnX7BjXNzukv7mpT/8oDCtLbUz5R4CXBuvzrdlynKnicNTtpfDim8cgq DyvokGNBcVgYlFU9qA/g+f6XEXjbGpr2NzFMwaahmIzn2AWVRoXnWx6TQqPvqws8ERdU FjR5LHFeGo//VjdIe9fKksc84F9jUmnK4yf2dFq86wm/PGIqssKSBpYr/Ea3wjhgZ8UN hdtZ63Qfgp5LTEnUnLoQ+w2XlCLj+DAga+L+6Ss3p+URTBjeqNzEfz5OwabeCnX4UYqg HWJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775312924; x=1775917724; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nna7XikjSIt8v38EvLKlFvQXyQgfQaOAHmwwtVCsG/8=; b=aAJGHxmxrtLT+4sczVe2duQ+6CBZgvEMggP3ghMP69qPmMRghXQv0jF+vjiU2yyG7d FKz11ay5+OpjK/RYWPfV2l5g+zdQVvH9SByZQlyJEatqL4XJ6xEzWffU/cW2MlEifJLg 5SC6hjQuQYAm622ug6Za2q7euJ2XUE+ewMMZIz6/Dpev/2vpO2tNfD65Lp29p+zFwKIC ZifedcluEJT5rg5E1TEiaMey9ehPnnKa9qJCmw3M3RwsaQ38OeVn6+IZ87CNhZgtC6lR gzpPll/BQQBHAHLaZlH5bnHqDx+kmx08Zznqq1IvIRrFhX66/4cU+fKN4FMSNVyf5ZM1 ki+g== X-Forwarded-Encrypted: i=1; AJvYcCVGsHdrcYfMRrvp9EyxDyFw/xAOxYHc+WN10ydrqiRH/mt5KPtXN+zcg8KhwbXMxJd1cxfYGDtC461J6AU=@vger.kernel.org X-Gm-Message-State: AOJu0Yzbl5N32qiUUowMozGTOXOHaM2szC1urtWcoP6G4Rz7OWz7wlXq ZFJtvzauE2hmZjdTOhVlNFiZLCHfXs6KIeNRl9kLpXKfnSNJcCfzcOtm X-Gm-Gg: AeBDieshSQtpOsanU7YCNfam1NO1MWEr10tGG6FMil2k29Y8Jsp05+WN3kVhMso5jXr OvbeYBwDLhECK2fyC3W2YujtQhd9Wq/k+jTrPZ4IHw64mwKfDW/U17lGceFznhipjqyfbbfyoTZ 9a3E2WcYIXPZYRcM1bgBGJgTTLDUIodQ/RYC0hFRcwWRlUaN6HFYJOPssG8OVb6TckDXX4gNEgZ dlfQqoORnCOaPJZkTfBBUiT/dLjhqD7g6OZAup341VBlAqmXIf8ANBxYKMywEumMaBwtIxulcuK 0mZzXFywUTDg5zMatBxyNyGMardw5LeOKlUUg577E1N/60MR0IIUwoUDm0dKuNXIJkmQqFSfXny B+zf6KA6sA5tn2zzYtQNyvpkU4mRTU8bimOdmW8Qb+8BwmHFPMpnI5lOUZCMb/oCsYZjchcj1fr XN9mF6XTE/bP36o0N4pMBCIh+ROvhx6e82nJrgoBuWeWQ= X-Received: by 2002:a05:620a:4147:b0:8cd:b317:d69f with SMTP id af79cd13be357-8d301d90232mr1129492085a.17.1775312924148; Sat, 04 Apr 2026 07:28:44 -0700 (PDT) Received: from desktop.. ([2607:fea8:d681:2400:e8ee:54ba:50d9:dea6]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8d4b24ea458sm299111085a.9.2026.04.04.07.28.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Apr 2026 07:28:43 -0700 (PDT) From: Tushar Sariya To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, carnil@debian.org, maik.nergert@uni-hamburg.de, valentin.samir@magellium.fr, regressions@lists.linux.dev, Tushar Sariya , stable@vger.kernel.org Subject: [PATCH v2 1/1] NFSv4.1: Apply session size limits on clone path Date: Sat, 4 Apr 2026 11:58:03 -0230 Message-ID: <20260404142831.3341498-2-tushar.sariya77@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260404142831.3341498-1-tushar.sariya77@gmail.com> References: <177349021750.3039212.10211295677877269201@eldamar.lan> <20260404142831.3341498-1-tushar.sariya77@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Tushar Sariya nfs4_clone_server() builds a child nfs_server for same-server automounted submounts but never calls nfs4_session_limit_rwsize() or nfs4_session_limit_xasize() after nfs_clone_server(). This means the child mount can end up with rsize/wsize values that exceed the negotiated session channel limits, causing NFS4ERR_REQ_TOO_BIG and EIO on servers that enforce tight max_request_size budgets. Top-level mounts go through nfs4_server_common_setup() which calls these limiters after nfs_probe_server(). Apply the same clamping on the clone path for consistency. Fixes: 2b092175f5e3 ("NFS: Fix inheritance of the block sizes when automoun= ting") Cc: stable@vger.kernel.org Signed-off-by: Tushar Sariya --- fs/nfs/internal.h | 2 ++ fs/nfs/nfs4client.c | 4 ++-- fs/nfs/nfs4proc.c | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 63e09dfc27a8..0338603e9674 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -253,6 +253,8 @@ extern struct nfs_client *nfs4_set_ds_client(struct nfs= _server *mds_srv, u32 minor_version); extern struct rpc_clnt *nfs4_find_or_create_ds_client(struct nfs_client *, struct inode *); +extern void nfs4_session_limit_rwsize(struct nfs_server *server); +extern void nfs4_session_limit_xasize(struct nfs_server *server); extern struct nfs_client *nfs3_set_ds_client(struct nfs_server *mds_srv, const struct sockaddr_storage *ds_addr, int ds_addrlen, int ds_proto, unsigned int ds_timeo, diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c index c211639949c2..71c271a1700a 100644 --- a/fs/nfs/nfs4client.c +++ b/fs/nfs/nfs4client.c @@ -855,7 +855,7 @@ EXPORT_SYMBOL_GPL(nfs4_set_ds_client); * Limit the mount rsize, wsize and dtsize using negotiated fore * channel attributes. */ -static void nfs4_session_limit_rwsize(struct nfs_server *server) +void nfs4_session_limit_rwsize(struct nfs_server *server) { struct nfs4_session *sess; u32 server_resp_sz; @@ -878,7 +878,7 @@ static void nfs4_session_limit_rwsize(struct nfs_server= *server) /* * Limit xattr sizes using the channel attributes. */ -static void nfs4_session_limit_xasize(struct nfs_server *server) +void nfs4_session_limit_xasize(struct nfs_server *server) { #ifdef CONFIG_NFS_V4_2 struct nfs4_session *sess; diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 91bcf67bd743..655617ffca8d 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -10618,6 +10618,9 @@ static struct nfs_server *nfs4_clone_server(struct = nfs_server *source, if (IS_ERR(server)) return server; =20 + nfs4_session_limit_rwsize(server); + nfs4_session_limit_xasize(server); + error =3D nfs4_delegation_hash_alloc(server); if (error) { nfs_free_server(server); --=20 2.43.0