diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-12 14:04:39 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-12 14:04:39 +0000 |
| commit | 5108cd36522940afcfe57b523eb87c97ef89fb16 (patch) | |
| tree | 7d02bf240766ce54c4f9902b4d385b1a150ac08e /sys | |
| parent | ffd08d59ae2d99035a6703f22fd1869b33cb6e13 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/kern/vfs_subr.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 797e27b60c9b..77f8fc00f511 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -3579,32 +3579,18 @@ vn_isdisk(vp, errp) struct vnode *vp; int *errp; { - struct cdevsw *cdevsw; + int error; - if (vp->v_type != VCHR) { - if (errp != NULL) - *errp = ENOTBLK; - return (0); - } - if (vp->v_rdev == NULL) { - if (errp != NULL) - *errp = ENXIO; - return (0); - } - cdevsw = devsw(vp->v_rdev); - if (cdevsw == NULL) { - if (errp != NULL) - *errp = ENXIO; - return (0); - } - if (!(cdevsw->d_flags & D_DISK)) { - if (errp != NULL) - *errp = ENOTBLK; - return (0); - } + error = 0; + if (vp->v_type != VCHR) + error = ENOTBLK; + else if (vp->v_rdev == NULL) + error = ENXIO; + else if (!(devsw(vp->v_rdev)->d_flags & D_DISK)) + error = ENOTBLK; if (errp != NULL) - *errp = 0; - return (1); + *errp = error; + return (error == 0); } /* |
