1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-15 10:17:20 +00:00

v_vxproc was a bogus name for a thread (pointer).

This commit is contained in:
Bruce Evans 2003-12-28 09:12:56 +00:00
parent 007233efcd
commit 9efe7d9d83
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=123932
4 changed files with 7 additions and 7 deletions

View File

@ -650,7 +650,7 @@ null_lock(ap)
* operation. When that happens, just back out.
*/
if (error == 0 && (vp->v_iflag & VI_XLOCK) != 0 &&
td != vp->v_vxproc) {
td != vp->v_vxthread) {
lockmgr(vp->v_vnlock,
(flags & ~LK_TYPE_MASK) | LK_RELEASE,
VI_MTX(vp), td);
@ -668,7 +668,7 @@ null_lock(ap)
wakeup(&nn->null_pending_locks);
}
if (error == ENOENT && (vp->v_iflag & VI_XLOCK) != 0 &&
vp->v_vxproc != curthread) {
vp->v_vxthread != curthread) {
vp->v_iflag |= VI_XWANT;
msleep(vp, VI_MTX(vp), PINOD, "nulbo", 0);
}

View File

@ -2095,7 +2095,7 @@ vget(vp, flags, td)
*/
if ((flags & LK_INTERLOCK) == 0)
VI_LOCK(vp);
if (vp->v_iflag & VI_XLOCK && vp->v_vxproc != curthread) {
if (vp->v_iflag & VI_XLOCK && vp->v_vxthread != curthread) {
if ((flags & LK_NOWAIT) == 0) {
vp->v_iflag |= VI_XWANT;
msleep(vp, VI_MTX(vp), PINOD | PDROP, "vget", 0);
@ -2504,7 +2504,7 @@ vx_lock(struct vnode *vp)
if (vp->v_iflag & VI_XLOCK)
panic("vclean: deadlock");
vp->v_iflag |= VI_XLOCK;
vp->v_vxproc = curthread;
vp->v_vxthread = curthread;
}
static void
@ -2512,7 +2512,7 @@ vx_unlock(struct vnode *vp)
{
ASSERT_VI_LOCKED(vp, "vx_unlock");
vp->v_iflag &= ~VI_XLOCK;
vp->v_vxproc = NULL;
vp->v_vxthread = NULL;
if (vp->v_iflag & VI_XWANT) {
vp->v_iflag &= ~VI_XWANT;
wakeup(vp);

View File

@ -869,7 +869,7 @@ debug_vn_lock(vp, flags, td, filename, line)
do {
if ((flags & LK_INTERLOCK) == 0)
VI_LOCK(vp);
if ((vp->v_iflag & VI_XLOCK) && vp->v_vxproc != curthread) {
if ((vp->v_iflag & VI_XLOCK) && vp->v_vxthread != curthread) {
if ((flags & LK_NOWAIT) != 0) {
VI_UNLOCK(vp);
return (ENOENT);

View File

@ -112,7 +112,7 @@ struct vnode {
u_long v_iflag; /* i vnode flags (see below) */
int v_usecount; /* i ref count of users */
long v_numoutput; /* i writes in progress */
struct thread *v_vxproc; /* i thread owning VXLOCK */
struct thread *v_vxthread; /* i thread owning VXLOCK */
int v_holdcnt; /* i page & buffer references */
struct buflists v_cleanblkhd; /* i SORTED clean blocklist */
struct buf *v_cleanblkroot; /* i clean buf splay tree */