diff options
author | phk <phk@FreeBSD.org> | 2000-01-10 12:04:27 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2000-01-10 12:04:27 +0000 |
commit | ae0c1ec8f72abc7b43c1fed6860db12370093a0a (patch) | |
tree | d473773da273d9f8e9ef585dcf6dea59e03c2855 /sys/ufs | |
parent | 5a624ba37849e1a07c962f1ec21e8e3df37884af (diff) | |
download | FreeBSD-src-ae0c1ec8f72abc7b43c1fed6860db12370093a0a.zip FreeBSD-src-ae0c1ec8f72abc7b43c1fed6860db12370093a0a.tar.gz |
Give vn_isdisk() a second argument where it can return a suitable errno.
Suggested by: bde
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 7 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 8 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vnops.c | 5 |
3 files changed, 9 insertions, 11 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 8f7e3f2..46495f3 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -3744,7 +3744,7 @@ softdep_fsync_mountdev(vp) struct buf *bp, *nbp; struct worklist *wk; - if (!vn_isdisk(vp)) + if (!vn_isdisk(vp, NULL)) panic("softdep_fsync_mountdev: vnode not a disk"); ACQUIRE_LOCK(&lk); for (bp = TAILQ_FIRST(&vp->v_dirtyblkhd); bp; bp = nbp) { @@ -3806,7 +3806,7 @@ softdep_sync_metadata(ap) * Check whether this vnode is involved in a filesystem * that is doing soft dependency processing. */ - if (!vn_isdisk(vp)) { + if (!vn_isdisk(vp, NULL)) { if (!DOINGSOFTDEP(vp)) return (0); } else @@ -4031,7 +4031,8 @@ loop: * way to accomplish this is to sync the entire filesystem (luckily * this happens rarely). */ - if (vn_isdisk(vp) && vp->v_specmountpoint && !VOP_ISLOCKED(vp, NULL) && + if (vn_isdisk(vp, NULL) && + vp->v_specmountpoint && !VOP_ISLOCKED(vp, NULL) && (error = VFS_SYNC(vp->v_specmountpoint, MNT_WAIT, ap->a_cred, ap->a_p)) != 0) return (error); diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 77e821f..511c827 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -280,10 +280,8 @@ ffs_mount( mp, path, data, ndp, p) NDFREE(ndp, NDF_ONLY_PNBUF); devvp = ndp->ni_vp; - if (!vn_isdisk(devvp)) { - err = ENOTBLK; + if (!vn_isdisk(devvp, &err)) goto error_2; - } /* * If mount by non-root, then verify that user has necessary @@ -442,7 +440,7 @@ ffs_reload(mp, cred, p) * Only VMIO the backing device if the backing device is a real * block device. See ffs_mountmfs() for more details. */ - if (devvp->v_tag != VT_MFS && vn_isdisk(devvp)) { + if (devvp->v_tag != VT_MFS && vn_isdisk(devvp, NULL)) { vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p); vfs_object_create(devvp, p, p->p_ucred); simple_lock(&devvp->v_interlock); @@ -599,7 +597,7 @@ ffs_mountfs(devvp, mp, p, malloctype) * Note that it is optional that the backing device be VMIOed. This * increases the opportunity for metadata caching. */ - if (devvp->v_tag != VT_MFS && vn_isdisk(devvp)) { + if (devvp->v_tag != VT_MFS && vn_isdisk(devvp, NULL)) { vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, p); vfs_object_create(devvp, p, p->p_ucred); simple_lock(&devvp->v_interlock); diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 6087d81..5a7ce0b 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -126,9 +126,8 @@ ffs_fsync(ap) int s, error, wait, passes, skipmeta; daddr_t lbn; - wait = (ap->a_waitfor == MNT_WAIT); - if (vn_isdisk(vp)) { + if (vn_isdisk(vp, NULL)) { lbn = INT_MAX; if (vp->v_specmountpoint != NULL && (vp->v_specmountpoint->mnt_flag & MNT_SOFTDEP)) @@ -265,7 +264,7 @@ loop: goto loop; } #ifdef DIAGNOSTIC - if (!vn_isdisk(vp)) + if (!vn_isdisk(vp, NULL)) vprint("ffs_fsync: dirty", vp); #endif } |