Date: Thu, 05 Mar 2026 23:48:16 +0000 From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: ed87040311b8 - main - zfs rename: properly cleanup on errors occuring before zfs_do_rename() Message-ID: <69aa1640.3f286.50f64742@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ed87040311b88e2c95a791aa049f2c37c857f048 commit ed87040311b88e2c95a791aa049f2c37c857f048 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2026-03-05 02:57:34 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2026-03-05 23:46:53 +0000 zfs rename: properly cleanup on errors occuring before zfs_do_rename() Reported and tested by: arrowd Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D55539 --- .../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 05ac77741d4f..31654ec82392 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 @@ -5527,15 +5527,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?69aa1640.3f286.50f64742>
