From nobody Mon Sep 22 04:54:35 2025 X-Original-To: dev-commits-src-all@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 4cVW4C3wmNz68ZJv; Mon, 22 Sep 2025 04:54:35 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cVW4C30bCz3PhG; Mon, 22 Sep 2025 04:54:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758516875; 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=K8ageN5embyoczY2q2Mash8D0ofamrg6tmkH64yxzU0=; b=Y7NKcyhk1k1/R1XJTCgEoFUhCPgLo92ZEPRyPAgIw8GVIUJ6KYTLOnLzkZ1eV4C05OSp4x ec8Xv+u9eyqHfzxH8fFYIpy9Iu3aTGbmClcjkNFwIGMzkrIrZpGGMULNK8KSFSybj22LHF rOJzdII1O7xjJx1tZIEi2yr5EcIuR4KNbLLwBa4G+vrROuRXNAXk5IfC3JkNRekneFSZdV ED0v2Nype4cHvHws8G9fHtWu643Q3SFxeMx2Crlx4HnXEL+jyldnPIsbYh15KprkI8iUT8 uDAVgcLAumZGlDChN202fyRgyD88RS1FEa0+CQ03u3mkovOgiiLJAvykZzHNRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758516875; 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=K8ageN5embyoczY2q2Mash8D0ofamrg6tmkH64yxzU0=; b=khnLuwD0XFZpBH6132WkaNf6opNUyjoKDW7/KHfrPz1w5G095pAgVakwyop6kQRLHHVPP8 2eCoWXcpi0KnZyLiFacCLisnm3n2Td7fy2PgBejFIcEa9RYu/tXLrC1Tat30xEHC7Csac4 dTm5IA5bUCZzJxcwohsknAGTbUvhYIKssLsWT4p8KRCtq2oPopkumT3yu2N9A6R5306P3b C5leja5PhXwHMJzfeusgTC4iSab+/K/Ow0q0m44fkPrrQkxCXcb9c3KjVB9opC04Apeoc7 +NAHf7i+de7+Z45ZUsYsK04ldKZfHdQDWx4oPm6iRKk6OASeD14l1D9CT5uzEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758516875; a=rsa-sha256; cv=none; b=QxYlQSCHV/zra+2B5wpK/IWEqPKwF8cNMZMXHlRDBpsIUbNNw/ZbfX0QfXC47PT1XAgbpn DZQmMUFCp4ZkGOi+ZSnUMC+ZRShHhVkLjb1svg4rII+rLmjx7lHjw9GlsIW952zkIuWBOa yav8gsesSmQM22+KZ2ALGS3ibR4SC2BOWX7vWxn7Se5IY8CPOcskNyN949mwweYDKPN2AR yXsFZDa0OeRl2JYyVX9b3ZZV5diR+yXboyqxPB8QHTTQv45e5YAmiGyuhAM+bEavi8+U0t QeRHG8zsdls5e+B7V2kb43jmbAYqGefNvAWPP1qgArWXCXmcCWsIuGsFIldy1w== 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 4cVW4C2c13zmNp; Mon, 22 Sep 2025 04:54:35 +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 58M4sZe3093075; Mon, 22 Sep 2025 04:54:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58M4sZ7B093072; Mon, 22 Sep 2025 04:54:35 GMT (envelope-from git) Date: Mon, 22 Sep 2025 04:54:35 GMT Message-Id: <202509220454.58M4sZ7B093072@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: bd49a8db47dd - stable/14 - Revert "zfsctl_root_readdir: if there were no dirents to copy out, return EINVAL" List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bd49a8db47dd3a825a48f4dcf1c8684675a502c2 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=bd49a8db47dd3a825a48f4dcf1c8684675a502c2 commit bd49a8db47dd3a825a48f4dcf1c8684675a502c2 Author: Konstantin Belousov AuthorDate: 2025-09-19 17:06:54 +0000 Commit: Konstantin Belousov CommitDate: 2025-09-22 04:54:00 +0000 Revert "zfsctl_root_readdir: if there were no dirents to copy out, return EINVAL" (cherry picked from commit 72924ce99c7f177db486bd2764a76bcf25892a17) --- .../openzfs/module/os/freebsd/zfs/zfs_ctldir.c | 40 ++++++++-------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c index 0c0112c29ae7..3f955b296f1e 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c @@ -673,7 +673,6 @@ zfsctl_root_readdir(struct vop_readdir_args *ap) zfs_uio_t uio; int *eofp = ap->a_eofflag; off_t dots_offset; - ssize_t orig_resid; int error; zfs_uio_init(&uio, ap->a_uio); @@ -693,11 +692,13 @@ zfsctl_root_readdir(struct vop_readdir_args *ap) return (0); } - orig_resid = zfs_uio_resid(&uio); error = sfs_readdir_common(zfsvfs->z_root, ZFSCTL_INO_ROOT, ap, &uio, &dots_offset); - if (error != 0) - goto err; + if (error != 0) { + if (error == ENAMETOOLONG) /* ran out of destination space */ + error = 0; + return (error); + } if (zfs_uio_offset(&uio) != dots_offset) return (SET_ERROR(EINVAL)); @@ -710,11 +711,8 @@ zfsctl_root_readdir(struct vop_readdir_args *ap) entry.d_reclen = sizeof (entry); error = vfs_read_dirent(ap, &entry, zfs_uio_offset(&uio)); if (error != 0) { -err: - if (error == ENAMETOOLONG) { - error = orig_resid == zfs_uio_resid(&uio) ? - EINVAL : 0; - } + if (error == ENAMETOOLONG) + error = 0; return (SET_ERROR(error)); } if (eofp != NULL) @@ -1059,21 +1057,17 @@ zfsctl_snapdir_readdir(struct vop_readdir_args *ap) zfs_uio_t uio; int *eofp = ap->a_eofflag; off_t dots_offset; - ssize_t orig_resid; int error; zfs_uio_init(&uio, ap->a_uio); - orig_resid = zfs_uio_resid(&uio); ASSERT3S(vp->v_type, ==, VDIR); error = sfs_readdir_common(ZFSCTL_INO_ROOT, ZFSCTL_INO_SNAPDIR, ap, &uio, &dots_offset); if (error != 0) { - if (error == ENAMETOOLONG) { /* ran out of destination space */ - error = orig_resid == zfs_uio_resid(&uio) ? - EINVAL : 0; - } + if (error == ENAMETOOLONG) /* ran out of destination space */ + error = 0; return (error); } @@ -1091,13 +1085,9 @@ zfsctl_snapdir_readdir(struct vop_readdir_args *ap) dsl_pool_config_exit(dmu_objset_pool(zfsvfs->z_os), FTAG); if (error != 0) { if (error == ENOENT) { - if (orig_resid == zfs_uio_resid(&uio)) { - error = EINVAL; - } else { - error = 0; - if (eofp != NULL) - *eofp = 1; - } + if (eofp != NULL) + *eofp = 1; + error = 0; } zfs_exit(zfsvfs, FTAG); return (error); @@ -1110,10 +1100,8 @@ zfsctl_snapdir_readdir(struct vop_readdir_args *ap) entry.d_reclen = sizeof (entry); error = vfs_read_dirent(ap, &entry, zfs_uio_offset(&uio)); if (error != 0) { - if (error == ENAMETOOLONG) { - error = orig_resid == zfs_uio_resid(&uio) ? - EINVAL : 0; - } + if (error == ENAMETOOLONG) + error = 0; zfs_exit(zfsvfs, FTAG); return (SET_ERROR(error)); }