From nobody Mon May 22 19:01:29 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 4QQ6HZ1Kyxz4CL2h; Mon, 22 May 2023 19:01:30 +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 4QQ6HZ0qPPz4136; Mon, 22 May 2023 19:01:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684782090; 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=F1u9J5ERH2cLNaK2vHlEr8zFkzij1zKhwsPdKZlX2y0=; b=PMoR79bbv1q1l00DTEXvYAs6Y9RE8+s5jRzY7yV6lt8kpKQd6b/5Gfkaw8jPpNd2J9C+9T YNs/o7QG7ptJvdTJsHnV/yo+WkDhFmbpMD1XtY2/ue8F7vxvAEcKCftxzicWKncCmGTDUH lykNXpeYDb0tA3A63+mPuy0OjGb/m0H+5+G87vZjaSsZ8KVy2wAQe0KHnIIWT0QKayb53K XPUpoee8694x3VINNe9Tov8SxmTN90X+0OivHvVNHMYCo7uESp195W11JVPBfIuVpVaCbp 3ygzHiUOztLnDPes3TaYqrJSozZeWipMYpTKLHUXf5me3lf82Wgz8Ge7Pi5mFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684782090; 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=F1u9J5ERH2cLNaK2vHlEr8zFkzij1zKhwsPdKZlX2y0=; b=HfpJQa/kgQLc5+uOPQQS9Zb3U/tUPQVzHpB5k80D8UglfPUMuTr0KLvcARI+kFduTFiHyF C69xE7gHFxOLP3Ei7HtHLa5/BziNDATMFHQY3dAskK3NdwNXGmV/b1LfiexzHppWQEcqhB I7vzgPHRRNAG7cv+mShKLGcCi7yQImgdkeLQKOCq7KGo1k5WhH6GpaRS9wfNFVxYeGvDDb Zg870zWqYKZ4zLxSuGkI1COypIaYgqE+BRrtU+EzNxQgptK4MnaZFZE0Kj7mcJbgVEH+Wc 2EyGpfavM5jOvIc8tf+YTo0ivxaN6MKkW4SMikn8nMabAAPhh3F8HyjFrrxQzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684782090; a=rsa-sha256; cv=none; b=wz8fnfr3O8E8mVqve86xYAIF9aRfJJqNBJ89u8T9Rxl2heywFei9nGeJEJkG3EQ94uRhBC EqhkwGgAqaCh6uWhtmi1x1g/5V+IK/07k396CVSB2GP5whRZWRxL/3Gn8gErBFZt3YK1nP HAFvWMYDVzSnqS68GWVxZlz7TNQBZHTJc1ZhN6nf6t38tK1t4BaNTNI+NwEcBulpp+ldzp /b6Ns1CM4WNz6dhqV/oNQzyH/DF8UyJHo0RQx1ybr5RsVOb6EIyAK4iLIQNSyOcqPHU6xP 2weKQhU4A3PoGUGydQ9RPuxwzv1KVRE9YnlTYWIpnRNwC6sEKq/YuJaRQ2b5dA== 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 4QQ6HY70ZpzV7D; Mon, 22 May 2023 19:01:29 +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 34MJ1TP5002694; Mon, 22 May 2023 19:01:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34MJ1TgK002693; Mon, 22 May 2023 19:01:29 GMT (envelope-from git) Date: Mon, 22 May 2023 19:01:29 GMT Message-Id: <202305221901.34MJ1TgK002693@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: c7f6408f4820 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: c7f6408f482059d4fb7e5344b49a8d879da73743 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=c7f6408f482059d4fb7e5344b49a8d879da73743 commit c7f6408f482059d4fb7e5344b49a8d879da73743 Author: Rick Macklem AuthorDate: 2023-05-05 22:43:55 +0000 Commit: Rick Macklem CommitDate: 2023-05-22 18:56:03 +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 e75c238b7117..a5fcf58b3d9f 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -2260,12 +2260,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); @@ -2764,8 +2764,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);