From nobody Fri May 16 19:39:12 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZzcpT10qQz5wD99; Fri, 16 May 2025 19:39:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZzcpS751Gz42Zs; Fri, 16 May 2025 19:39:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747424353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WYqdw8+RsYc+lzIQl/Nm4SFOrLM6nEg97tMJL/zfmoo=; b=i/9HTZEjwOoTLjngHQeERqxihmcfz0FJV7SxLGifof5WLMdcOFmmb89WJbLv9rgbapEfUJ Lv6/INdOFmDrpkHzM5Q2ODYGlYWXtUyuwicFxT7AZYECO0OTiwv3dEWO/oLMfdxSUhUmyp bv0Si+tp+WJVhRq5o+aHuXqZe6JJp8USFlI4TvvOcjKNaYe/PXHD0BtYYis9xskqP6K/EV ENC7DXWoC7z9tUVH2hA3vdkQSdJY0sDec3j3TAf+SPQDSWkuGrkmiHdDxv8bmRELHnabd0 MVu/zJIzoWMUo4axKzGhTMptbvsBRyGqpOuogAnTh9o/pQ+LkUGBaqTT1Gqjxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747424353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WYqdw8+RsYc+lzIQl/Nm4SFOrLM6nEg97tMJL/zfmoo=; b=bLEqIzzxWJG213hxgbjTU9QAsBUf7QbeHLpDVn37wW9wbap0miL0IK1XZ2lIorUBkr6Ky0 tFzEdiT1OBaetAIY4ixQcIudZ3Ht8ZrRPZbbQ4BZYuBNBEJwGUMYGsP/0hg8HwL8ZM53rd azFzDyezH4ef6kjVQQQdWHO7DLtWk9cT/rtbWPGrVLMinyeavLl7/zSuOHHDg3IsDMOxmI SBa9/2OMbDxTsanNU1ztzegHsG2hXmis6q2khzxGcCd2wg6UiqUyNZ1oCoP+m5mXzFz9ma hNpb4m6/kwgPTv8RnfpcpSNKH2SHgVco/UMQMRhR2u/lenQYUd9Gya/ONhpYzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747424353; a=rsa-sha256; cv=none; b=Lllcnmc0ni+IWkLOmcwadU9V3cMcz3YU+nnexuH3pnB3pATgPBOcxA1ftWDoZp2NU/lyyI S1LaYWgPggcljozRakTsVz1qHjl+JyE7TTYQo3I3IBvbb6m8tG65CfMWQRNfjHwo5Pp4Am WyJH0wNK8CgmgMjnAYmdDssc5CJ4hPZdQA7fvzofm6RZCmZVflUpIpjFoSk3ZyssH25cIK 1E3D96xKmBW5If6IUqyWL36nYeslUtkxWl1X9w2UWXInZVaMAiMuaEf7GdDDHApUAjoFXM YvdU/XZKG/OFA9RI8/a4xIBMGnQ9MZ7y1MvMDTU9Z4cM6iHjkAoefX8DSLpv3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZzcpS6NGGz21V; Fri, 16 May 2025 19:39:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54GJdC4I041059; Fri, 16 May 2025 19:39:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54GJdCnX041056; Fri, 16 May 2025 19:39:12 GMT (envelope-from git) Date: Fri, 16 May 2025 19:39:12 GMT Message-Id: <202505161939.54GJdCnX041056@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: e647a222a1a7 - main - nfs_clrpcops.c: Fix handling of a CreateLayGet reply List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e647a222a1a74bd3b2bbdd7903fb30e4e30b6b09 Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=e647a222a1a74bd3b2bbdd7903fb30e4e30b6b09 commit e647a222a1a74bd3b2bbdd7903fb30e4e30b6b09 Author: Rick Macklem AuthorDate: 2025-05-16 19:36:39 +0000 Commit: Rick Macklem CommitDate: 2025-05-16 19:36:39 +0000 nfs_clrpcops.c: Fix handling of a CreateLayGet reply Without this patch, the CreateLayGet RPC did not handle a NFSv4.1/4.2 reply for a pNFS server that also issued delegations. This patch fixes the problem. Detected at the recent NFSv4 Bakeathon testing event. This bug would only affect the rare case where the FreeBSD client is mounted to a pNFS server that issues delegations, where the "pnfs" mount option is specified. MFC after: 2 weeks --- sys/fs/nfsclient/nfs_clrpcops.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c index c1f94a65e506..4ff56f75123c 100644 --- a/sys/fs/nfsclient/nfs_clrpcops.c +++ b/sys/fs/nfsclient/nfs_clrpcops.c @@ -8590,6 +8590,13 @@ nfsrpc_createlayout(vnode_t dvp, char *name, int namelen, struct vattr *vap, &ret, &acesize, p); if (error != 0) goto nfsmout; + } else if (deleg == NFSV4OPEN_DELEGATENONEEXT && + NFSHASNFSV4N(nmp)) { + NFSM_DISSECT(tl, uint32_t *, NFSX_UNSIGNED); + deleg = fxdr_unsigned(uint32_t, *tl); + if (deleg == NFSV4OPEN_CONTENTION || + deleg == NFSV4OPEN_RESOURCE) + NFSM_DISSECT(tl, uint32_t *, NFSX_UNSIGNED); } else if (deleg != NFSV4OPEN_DELEGATENONE) { error = NFSERR_BADXDR; goto nfsmout;