diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index 4b70f2c5a4bd..eb80cd015ac5 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * @(#)union_vnops.c 8.32 (Berkeley) 6/23/95 - * $Id: union_vnops.c,v 1.23 1997/04/14 05:13:55 kato Exp $ + * $Id: union_vnops.c,v 1.24 1997/04/15 12:56:57 kato Exp $ */ #include @@ -1058,7 +1058,6 @@ union_link(ap) struct union_node *un; struct vnode *vp; struct vnode *tdvp; - int isvnunlocked = 0; un = VTOUNION(ap->a_tdvp); @@ -1097,19 +1096,7 @@ union_link(ap) un->un_flags |= UN_KLOCK; vput(ap->a_tdvp); - /* - * XXX -- This is a quick-hack to avoid panic. Problem still remains! - * The process which access the union filesystem will be hang-up after - * making link in the union fs. - */ - if (VOP_ISLOCKED(tdvp) && (tdvp->v_op != union_vnodeop_p)) { - isvnunlocked = 1; - VOP_UNLOCK(tdvp, 0, p); - } - error = VOP_LINK(vp, tdvp, cnp); - if (isvnunlocked) - vn_lock(tdvp, LK_EXCLUSIVE | LK_RETRY, p); - return error; + return (VOP_LINK(tdvp, vp, cnp)); } int diff --git a/sys/miscfs/union/union_vnops.c b/sys/miscfs/union/union_vnops.c index 4b70f2c5a4bd..eb80cd015ac5 100644 --- a/sys/miscfs/union/union_vnops.c +++ b/sys/miscfs/union/union_vnops.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * @(#)union_vnops.c 8.32 (Berkeley) 6/23/95 - * $Id: union_vnops.c,v 1.23 1997/04/14 05:13:55 kato Exp $ + * $Id: union_vnops.c,v 1.24 1997/04/15 12:56:57 kato Exp $ */ #include @@ -1058,7 +1058,6 @@ union_link(ap) struct union_node *un; struct vnode *vp; struct vnode *tdvp; - int isvnunlocked = 0; un = VTOUNION(ap->a_tdvp); @@ -1097,19 +1096,7 @@ union_link(ap) un->un_flags |= UN_KLOCK; vput(ap->a_tdvp); - /* - * XXX -- This is a quick-hack to avoid panic. Problem still remains! - * The process which access the union filesystem will be hang-up after - * making link in the union fs. - */ - if (VOP_ISLOCKED(tdvp) && (tdvp->v_op != union_vnodeop_p)) { - isvnunlocked = 1; - VOP_UNLOCK(tdvp, 0, p); - } - error = VOP_LINK(vp, tdvp, cnp); - if (isvnunlocked) - vn_lock(tdvp, LK_EXCLUSIVE | LK_RETRY, p); - return error; + return (VOP_LINK(tdvp, vp, cnp)); } int