svn commit: r255728 - stable/9/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Fri Sep 20 07:35:08 UTC 2013
Author: kib
Date: Fri Sep 20 07:35:08 2013
New Revision: 255728
URL: http://svnweb.freebsd.org/changeset/base/255728
Log:
MFC r255510:
When opening or closing fifo, ensure that the vnode is locked exclusively.
Modified:
stable/9/sys/kern/vfs_vnops.c
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/kern/vfs_vnops.c
==============================================================================
--- stable/9/sys/kern/vfs_vnops.c Fri Sep 20 07:31:32 2013 (r255727)
+++ stable/9/sys/kern/vfs_vnops.c Fri Sep 20 07:35:08 2013 (r255728)
@@ -254,6 +254,8 @@ restart:
goto bad;
}
}
+ if (vp->v_type == VFIFO && VOP_ISLOCKED(vp) != LK_EXCLUSIVE)
+ vn_lock(vp, LK_UPGRADE | LK_RETRY);
if ((error = VOP_OPEN(vp, fmode, cred, td, fp)) != 0)
goto bad;
@@ -307,7 +309,7 @@ vn_close(vp, flags, file_cred, td)
struct mount *mp;
int error, lock_flags;
- if (!(flags & FWRITE) && vp->v_mount != NULL &&
+ if (vp->v_type != VFIFO && !(flags & FWRITE) && vp->v_mount != NULL &&
vp->v_mount->mnt_kern_flag & MNTK_EXTENDED_SHARED)
lock_flags = LK_SHARED;
else
More information about the svn-src-stable-9
mailing list