aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2003-10-12 14:04:39 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2003-10-12 14:04:39 +0000
commit5108cd36522940afcfe57b523eb87c97ef89fb16 (patch)
tree7d02bf240766ce54c4f9902b4d385b1a150ac08e /sys
parentffd08d59ae2d99035a6703f22fd1869b33cb6e13 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/vfs_subr.c34
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);
}
/*