Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/devfs/devfs_vnops.c
Show First 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | if (devfs_dotimes) { | ||||
} | } | ||||
} | } | ||||
} | } | ||||
static int | static int | ||||
devfs_fp_check(struct file *fp, struct cdev **devp, struct cdevsw **dswp, | devfs_fp_check(struct file *fp, struct cdev **devp, struct cdevsw **dswp, | ||||
int *ref) | int *ref) | ||||
{ | { | ||||
*dswp = devvn_refthread(fp->f_vnode, devp, ref); | *dswp = devvn_refthread(fp->f_vnode, devp, ref); | ||||
if (*devp != fp->f_data) { | if (*dswp == NULL || *devp != fp->f_data) { | ||||
if (*dswp != NULL) | if (*dswp != NULL) | ||||
dev_relthread(*devp, *ref); | dev_relthread(*devp, *ref); | ||||
return (ENXIO); | return (ENXIO); | ||||
} | } | ||||
KASSERT((*devp)->si_refcount > 0, | KASSERT((*devp)->si_refcount > 0, | ||||
("devfs: un-referenced struct cdev *(%s)", devtoname(*devp))); | ("devfs: un-referenced struct cdev *(%s)", devtoname(*devp))); | ||||
if (*dswp == NULL) | if (*dswp == NULL) | ||||
return (ENXIO); | return (ENXIO); | ||||
▲ Show 20 Lines • Show All 1,990 Lines • Show Last 20 Lines |