Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Mar 2026 11:43:35 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 0b0bbdac18d1 - stable/15 - zfs rename: properly cleanup on errors occuring before zfs_do_rename()
Message-ID:  <69b003e7.1be4c.68b43bb6@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=0b0bbdac18d153e365e20989e23636d51214f972

commit 0b0bbdac18d153e365e20989e23636d51214f972
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-03-05 02:57:34 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-03-10 11:41:31 +0000

    zfs rename: properly cleanup on errors occuring before zfs_do_rename()
    
    (cherry picked from commit ed87040311b88e2c95a791aa049f2c37c857f048)
---
 .../openzfs/module/os/freebsd/zfs/zfs_vnops_os.c   | 23 +++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c
index 42565b579de7..7ea6f119130b 100644
--- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c
+++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c
@@ -5518,15 +5518,24 @@ zfs_freebsd_rename(struct vop_rename_args *ap)
 	}
 #endif
 
-	if (error == 0)
+	if (error == 0) {
 		error = zfs_do_rename(fdvp, &fvp, ap->a_fcnp, tdvp, &tvp,
 		    ap->a_tcnp, ap->a_fcnp->cn_cred);
-
-	vrele(fdvp);
-	vrele(fvp);
-	vrele(tdvp);
-	if (tvp != NULL)
-		vrele(tvp);
+		vrele(fdvp);
+		vrele(fvp);
+		vrele(tdvp);
+		if (tvp != NULL)
+			vrele(tvp);
+	} else {
+		if (tdvp == tvp)
+			vrele(tdvp);
+		else
+			vput(tdvp);
+		if (tvp != NULL)
+			vput(tvp);
+		vrele(fdvp);
+		vrele(fvp);
+	}
 
 	return (error);
 }


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69b003e7.1be4c.68b43bb6>