From 237445c8662d41d64666c78dfe10faedb37bd273 Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Sat, 11 Dec 2004 21:33:35 +0000 Subject: [PATCH] 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 --- sys/gnu/ext2fs/ext2_vnops.c | 8 ++++---- sys/gnu/fs/ext2fs/ext2_vnops.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sys/gnu/ext2fs/ext2_vnops.c b/sys/gnu/ext2fs/ext2_vnops.c index aad590944f0..ebc39d06385 100644 --- a/sys/gnu/ext2fs/ext2_vnops.c +++ b/sys/gnu/ext2fs/ext2_vnops.c @@ -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); diff --git a/sys/gnu/fs/ext2fs/ext2_vnops.c b/sys/gnu/fs/ext2fs/ext2_vnops.c index aad590944f0..ebc39d06385 100644 --- a/sys/gnu/fs/ext2fs/ext2_vnops.c +++ b/sys/gnu/fs/ext2fs/ext2_vnops.c @@ -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);