svn commit: r355262 - stable/11/sys/fs/tmpfs
Konstantin Belousov
kib at FreeBSD.org
Sun Dec 1 15:59:04 UTC 2019
Author: kib
Date: Sun Dec 1 15:59:04 2019
New Revision: 355262
URL: https://svnweb.freebsd.org/changeset/base/355262
Log:
MFC r355061:
tmpfs: resolve deadlock between rename and unmount.
Modified:
stable/11/sys/fs/tmpfs/tmpfs_vnops.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- stable/11/sys/fs/tmpfs/tmpfs_vnops.c Sun Dec 1 15:29:48 2019 (r355261)
+++ stable/11/sys/fs/tmpfs/tmpfs_vnops.c Sun Dec 1 15:59:04 2019 (r355262)
@@ -786,7 +786,6 @@ tmpfs_rename(struct vop_rename_args *v)
struct vnode *tdvp = v->a_tdvp;
struct vnode *tvp = v->a_tvp;
struct componentname *tcnp = v->a_tcnp;
- struct mount *mp = NULL;
char *newname;
struct tmpfs_dirent *de;
struct tmpfs_mount *tmp;
@@ -823,18 +822,10 @@ tmpfs_rename(struct vop_rename_args *v)
*/
if (fdvp != tdvp && fdvp != tvp) {
if (vn_lock(fdvp, LK_EXCLUSIVE | LK_NOWAIT) != 0) {
- mp = tdvp->v_mount;
- error = vfs_busy(mp, 0);
- if (error != 0) {
- mp = NULL;
- goto out;
- }
error = tmpfs_rename_relock(fdvp, &fvp, tdvp, &tvp,
fcnp, tcnp);
- if (error != 0) {
- vfs_unbusy(mp);
+ if (error != 0)
return (error);
- }
ASSERT_VOP_ELOCKED(fdvp,
"tmpfs_rename: fdvp not locked");
ASSERT_VOP_ELOCKED(tdvp,
@@ -1077,9 +1068,6 @@ out:
/* Release source nodes. */
vrele(fdvp);
vrele(fvp);
-
- if (mp != NULL)
- vfs_unbusy(mp);
return (error);
}
More information about the svn-src-stable
mailing list