Revert previous commit. The null-pointer function call (a dereference
on ia64) was not the result of a change in the vector operations. It was caused by the NFS locking code using a FIFO and those bypassing the vnode. This indirectly caused the panic. The NFS locking code has been changed. Requested by: phk
This commit is contained in:
parent
45b9cec85c
commit
860981b28f
@ -1476,7 +1476,7 @@ ext2fifo_read(ap)
|
||||
|
||||
uio = ap->a_uio;
|
||||
resid = uio->uio_resid;
|
||||
error = vop_read(&fifo_specops, ap);
|
||||
error = fifo_specops.vop_read(ap);
|
||||
ip = VTOI(ap->a_vp);
|
||||
if ((ap->a_vp->v_mount->mnt_flag & MNT_NOATIME) == 0 && ip != NULL &&
|
||||
(uio->uio_resid != resid || (error == 0 && resid != 0)))
|
||||
@ -1502,7 +1502,7 @@ ext2fifo_write(ap)
|
||||
|
||||
uio = ap->a_uio;
|
||||
resid = uio->uio_resid;
|
||||
error = vop_write(&fifo_specops, ap);
|
||||
error = fifo_specops.vop_write(ap);
|
||||
ip = VTOI(ap->a_vp);
|
||||
if (ip != NULL && (uio->uio_resid != resid || (error == 0 && resid != 0)))
|
||||
VTOI(ap->a_vp)->i_flag |= IN_CHANGE | IN_UPDATE;
|
||||
@ -1529,7 +1529,7 @@ ext2fifo_close(ap)
|
||||
if (vp->v_usecount > 1)
|
||||
ext2_itimes(vp);
|
||||
VI_UNLOCK(vp);
|
||||
return (vop_close(&fifo_specops, ap));
|
||||
return (fifo_specops.vop_close(ap));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1543,7 +1543,7 @@ ext2fifo_kqfilter(ap)
|
||||
{
|
||||
int error;
|
||||
|
||||
error = vop_kqfilter(&fifo_specops, ap);
|
||||
error = fifo_specops.vop_kqfilter(ap);
|
||||
if (error)
|
||||
error = ext2_kqfilter(ap);
|
||||
return (error);
|
||||
|
@ -1476,7 +1476,7 @@ ext2fifo_read(ap)
|
||||
|
||||
uio = ap->a_uio;
|
||||
resid = uio->uio_resid;
|
||||
error = vop_read(&fifo_specops, ap);
|
||||
error = fifo_specops.vop_read(ap);
|
||||
ip = VTOI(ap->a_vp);
|
||||
if ((ap->a_vp->v_mount->mnt_flag & MNT_NOATIME) == 0 && ip != NULL &&
|
||||
(uio->uio_resid != resid || (error == 0 && resid != 0)))
|
||||
@ -1502,7 +1502,7 @@ ext2fifo_write(ap)
|
||||
|
||||
uio = ap->a_uio;
|
||||
resid = uio->uio_resid;
|
||||
error = vop_write(&fifo_specops, ap);
|
||||
error = fifo_specops.vop_write(ap);
|
||||
ip = VTOI(ap->a_vp);
|
||||
if (ip != NULL && (uio->uio_resid != resid || (error == 0 && resid != 0)))
|
||||
VTOI(ap->a_vp)->i_flag |= IN_CHANGE | IN_UPDATE;
|
||||
@ -1529,7 +1529,7 @@ ext2fifo_close(ap)
|
||||
if (vp->v_usecount > 1)
|
||||
ext2_itimes(vp);
|
||||
VI_UNLOCK(vp);
|
||||
return (vop_close(&fifo_specops, ap));
|
||||
return (fifo_specops.vop_close(ap));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1543,7 +1543,7 @@ ext2fifo_kqfilter(ap)
|
||||
{
|
||||
int error;
|
||||
|
||||
error = vop_kqfilter(&fifo_specops, ap);
|
||||
error = fifo_specops.vop_kqfilter(ap);
|
||||
if (error)
|
||||
error = ext2_kqfilter(ap);
|
||||
return (error);
|
||||
|
Loading…
Reference in New Issue
Block a user