summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_extattr.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2005-09-01 21:46:33 +0000
committerpjd <pjd@FreeBSD.org>2005-09-01 21:46:33 +0000
commit226a90d03ebae8331576e4365e785261bbe428f1 (patch)
treeb33ef05941ba99ab4f6d2f79f8ef4d3d2fee3a2a /sys/kern/vfs_extattr.c
parent496d9adedae60499033937e11fefc388f1033474 (diff)
downloadFreeBSD-src-226a90d03ebae8331576e4365e785261bbe428f1.zip
FreeBSD-src-226a90d03ebae8331576e4365e785261bbe428f1.tar.gz
In case of mac_check_vnode_rename_from() or vn_start_write() failure,
vn_finished_write() should not be called. Reviewed by: ssouhlal MFC after: 3 days
Diffstat (limited to 'sys/kern/vfs_extattr.c')
-rw-r--r--sys/kern/vfs_extattr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index fb7f467..70f9812 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -3215,6 +3215,7 @@ kern_rename(struct thread *td, char *from, char *to, enum uio_seg pathseg)
NDFREE(&fromnd, NDF_ONLY_PNBUF);
vrele(fromnd.ni_dvp);
vrele(fvp);
+ vn_finished_write(mp);
goto out1;
}
tvfslocked = NDHASGIANT(&tond);
@@ -3268,8 +3269,8 @@ out:
vrele(fvp);
}
vrele(tond.ni_startdir);
-out1:
vn_finished_write(mp);
+out1:
if (fromnd.ni_startdir)
vrele(fromnd.ni_startdir);
VFS_UNLOCK_GIANT(fvfslocked);
OpenPOWER on IntegriCloud