From nobody Mon May 22 19:09:28 2023 X-Original-To: dev-commits-src-branches@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 4QQ6Sm6K1sz4CLRx; Mon, 22 May 2023 19:09:28 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QQ6Sm5MKpz41pl; Mon, 22 May 2023 19:09:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684782568; 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=uwnO0Cw9Gzkgp3GIfSRozgtYD51k6BIDcZWeIgNDf6c=; b=BB5WgOH+omXC+Sb7njNbkuTrcIolReh+8fetQdYhfjFO9zeRB180wQl6Gauxt4SEGYAENV RShP8L71duZVBk1xbeKve/T9iFn0r4/VNIyXrkqZuDRvdIBR/761dnCwQlulf2t1BXwaN/ NAsYapen4BKSOHRK1EujGpBLBJVU2NXcshLIIWbFexquPUiZf/b75XJiiJD4veaTYcq8MX jmr/roxEvjxbhhzrUADtV9G5FHRIatG+kV+uznNYpocLR/inS34I83ZsTgD67y3VtTIW58 McMN7nLnGVmfFBTmhyIMVr0ha+xPG8x0eGddIWycreWP2OyKaWwQBFiZuvr80A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684782568; 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=uwnO0Cw9Gzkgp3GIfSRozgtYD51k6BIDcZWeIgNDf6c=; b=gsR3jqbe86kpDcvFScsMecthBXYtx12q6MnZdzNYWzQJ04e5Y9DTgP4nBBP7ZyWKgDtH1I 5ZXBAN4cyxw63VUPgswQ+HgHqsuqbKwup2LuqLLeELqDZeaBqjNE6/NaYVpM0v/oDsteae LspAhip25bBsS2qJCVGrIhVbUlv7HWFNc0NSidUbnvn7IVUWG0YvXpkyPXd6hOGzc//fRH dxBjJZS6HaGDZz/MVvKdTZnK+Z/CuBBjNHXHyFUETIYfnIJD5LINrAdmTYvr0Pl7Yd5NHj 8lzO+FZQmQ40YFkDbYihmnQvXUl0RRkEbTD5PlTuBLlSB4SGTTVcUddvzEDRdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684782568; a=rsa-sha256; cv=none; b=XRN4EYha6vfto/0KniW2r+CEFGk/Nz/M+W9NeJHnJrSWzyGDiRnHFhpfvjVwP5BkxFXbzC sU8d5jzZq0WLzrCPLoLWJ64www2pp3AVA+ToXAM7piTHlFU16leMrQIYalcuRwx162J1PY 88HRPvrjrHxGiTm6ByvTqok41QQvoYvKN7bwLjtznrpTj21a1vbItePp0PiKFStMdfDlv9 z6wW3/a0GqSGRrGZBFJwcsbrBemZfGCOHr229y1yQU4qFXtiflrmDnjN5g5LVh8Jn77cr2 rXiyxdd6l1RQGiUZhpXZO2XdsqT/Srv7QcL0p7PhqAiy93U4DNlZ80PvjT99Fg== 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 4QQ6Sm42KMzV2f; Mon, 22 May 2023 19:09:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34MJ9SK4005900; Mon, 22 May 2023 19:09:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34MJ9SpA005899; Mon, 22 May 2023 19:09:28 GMT (envelope-from git) Date: Mon, 22 May 2023 19:09:28 GMT Message-Id: <202305221909.34MJ9SpA005899@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 886d82afb035 - stable/12 - nfsd: Fix NFSv3 Readdir/ReaddirPlus reply for large i-node numbers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/12 X-Git-Reftype: branch X-Git-Commit: 886d82afb0359c2bb8321eb1f5c6675787840468 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=886d82afb0359c2bb8321eb1f5c6675787840468 commit 886d82afb0359c2bb8321eb1f5c6675787840468 Author: Rick Macklem AuthorDate: 2023-05-05 22:43:55 +0000 Commit: Rick Macklem CommitDate: 2023-05-22 19:08:30 +0000 nfsd: Fix NFSv3 Readdir/ReaddirPlus reply for large i-node numbers If the i-node number (d_fileno) for a file on the server did not fit in 32bits, it would be truncated to the low order 32bits for the NFSv3 Readdir and ReaddirPlus RPC replies. This is no longer correct, given that ino_t is now 64bits. This patch fixes this by sending the full 64bits of d_fileno on the wire in the NFSv3 Readdir/ReaddirPlus RPC reply. PR: 271174 (cherry picked from commit 648a208ef3a171585f3446464646832f0e0ed3dc) --- sys/fs/nfsserver/nfs_nfsdport.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index a76f0ff0554c..0bb569bf6d2f 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -2017,12 +2017,12 @@ again: if (nd->nd_flag & ND_NFSV3) { NFSM_BUILD(tl, u_int32_t *, 3 * NFSX_UNSIGNED); *tl++ = newnfs_true; - *tl++ = 0; + txdr_hyper(dp->d_fileno, tl); } else { NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); *tl++ = newnfs_true; + *tl = txdr_unsigned(dp->d_fileno); } - *tl = txdr_unsigned(dp->d_fileno); (void) nfsm_strtom(nd, dp->d_name, nlen); if (nd->nd_flag & ND_NFSV3) { NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); @@ -2493,8 +2493,7 @@ again: if (nd->nd_flag & ND_NFSV3) { NFSM_BUILD(tl, u_int32_t *, 3 * NFSX_UNSIGNED); *tl++ = newnfs_true; - *tl++ = 0; - *tl = txdr_unsigned(dp->d_fileno); + txdr_hyper(dp->d_fileno, tl); dirlen += nfsm_strtom(nd, dp->d_name, nlen); NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); txdr_hyper(*cookiep, tl);