From nobody Fri May 5 22:45:23 2023 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 4QCm3m0fxfz49tcR; Fri, 5 May 2023 22:45:24 +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 4QCm3m00zkz3nwF; Fri, 5 May 2023 22:45:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1683326724; 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=huy8AlVIJ1hgD+K5Qqufm0MmCn96jNxu2qWy1XGoQOg=; b=MX5QPCy7s+C682FfIoPt2O4jNwVXzLWeCwosHyXuUH9xZ2dzJHaljqtbQDdejmyTEAAH21 MkI9c9LP6e+twn2u1hrChmhJpbtvtRwlYwzHOSbv1usQUiptfXrzJAEpjwtiSGQzv2ao43 5zytyMLsYz1uJogvHGz6MSdimLmXpWEEu9X99VF6fhIANhailWwHbVkOtD8ldHpcu1vzSY uMJoH1ueNOcCoeiEJW5Fj63/xnJ9583rNeGI8UIzzcZMZ2kKH3h0iqnkbCIGGNpKqstRi6 YPJOIH6WATDIIPuQcB96eDjTJM35MroD2PV6+YpVLEsjPlFtJeW1RsByiF/fQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1683326724; 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=huy8AlVIJ1hgD+K5Qqufm0MmCn96jNxu2qWy1XGoQOg=; b=SGfRHYnW+8IWQPSor/5nRA9KXFGoraoHRhgtLmLjF3w61oFabxXnsF3fNYEi49QeA4IGBt 9pzjStqxXLsW9Oi8HG5V4fHxLem0QSv3CdzPgQeg+hzrPToIOxGdcR5t04l303wh8QgfV9 e1rZPZw19IYMingyRmeg9oXEHU/UVJ9CRUKYmTFdwMYDLIQcKepd0oQViFkxXOnd01OIRU 6+u8dSjwL+pQ4rLU2NVsSC9VqCEwGhHZvD6W4kYfnQigMO/KKshy4lBjOVytj853xguyoi /VjMoJ52JYnTjD7yXXZZXYRqICSJRbIrY+7RG+bHydM30I+H7ccIk+e8DRQu4g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1683326724; a=rsa-sha256; cv=none; b=yt4MXKXBZPJ7EstWXJqCmD2G5KYyQ4Kjxpq3c5N2xW7bKVjKBjCa5qYNoju2NVxJ22uyzx 5ehsJmJeotP1/WjnAlm/v30qL2PdpR8OFbFLznpRv167qBweZESojA5C6C2R5V0znX/+IN c6tznTk0gP7dJCxpLN17abVppHesuXyxSj3800bmRkpAWEEI6660G1QmscMuX0k5Sz7SCw Gvg4lR4dvuPkL7Qz8rGH02Nb4MhB0qsBWP9YfpZpTzzzOIMQg8utQwaRVKvH7cahVaVwfo gAgaLOrNZnCMtmzR7q5g4wR1q26V6207y7fUhNEF+AUDwqobhXwlrytR41Ji4g== 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 4QCm3l64csz1BvD; Fri, 5 May 2023 22:45:23 +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 345MjNxN037958; Fri, 5 May 2023 22:45:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 345MjNlD037957; Fri, 5 May 2023 22:45:23 GMT (envelope-from git) Date: Fri, 5 May 2023 22:45:23 GMT Message-Id: <202305052245.345MjNlD037957@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: 648a208ef3a1 - main - nfsd: Fix NFSv3 Readdir/ReaddirPlus reply for large i-node numbers 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: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: 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: 648a208ef3a171585f3446464646832f0e0ed3dc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=648a208ef3a171585f3446464646832f0e0ed3dc commit 648a208ef3a171585f3446464646832f0e0ed3dc Author: Rick Macklem AuthorDate: 2023-05-05 22:43:55 +0000 Commit: Rick Macklem CommitDate: 2023-05-05 22:43:55 +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 Reported by: bmueller@panasas.com Tested by: bmueller@panasas.com MFC after: 2 weeks --- 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 56f5c00d0aed..6b5f357ecaf9 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -2251,12 +2251,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); @@ -2753,8 +2753,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);