summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2000-01-10 12:04:27 +0000
committerphk <phk@FreeBSD.org>2000-01-10 12:04:27 +0000
commitae0c1ec8f72abc7b43c1fed6860db12370093a0a (patch)
treed473773da273d9f8e9ef585dcf6dea59e03c2855 /sys/ufs
parent5a624ba37849e1a07c962f1ec21e8e3df37884af (diff)
downloadFreeBSD-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.c7
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c8
-rw-r--r--sys/ufs/ffs/ffs_vnops.c5
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
}
OpenPOWER on IntegriCloud