Index: sys/fs/devfs/devfs_vnops.c =================================================================== --- sys/fs/devfs/devfs_vnops.c (revision 285616) +++ sys/fs/devfs/devfs_vnops.c (working copy) @@ -131,13 +131,11 @@ } int -devfs_get_cdevpriv(void **datap) +devfs_get_cdevpriv_from_file(void **datap, const struct file *fp) { - struct file *fp; struct cdev_privdata *p; int error; - fp = curthread->td_fpop; if (fp == NULL) return (EBADF); p = fp->f_cdevpriv; @@ -150,6 +148,12 @@ } int +devfs_get_cdevpriv(void **datap) +{ + return devfs_get_cdevpriv_from_file(datap, curthread->td_fpop); +} + +int devfs_set_cdevpriv(void *priv, cdevpriv_dtr_t priv_dtr) { struct file *fp; Index: sys/sys/conf.h =================================================================== --- sys/sys/conf.h (revision 285616) +++ sys/sys/conf.h (working copy) @@ -280,6 +280,7 @@ #define dev2unit(d) ((d)->si_drv0) typedef void (*cdevpriv_dtr_t)(void *data); +int devfs_get_cdevpriv_from_file(void **datap, const struct file *fp); int devfs_get_cdevpriv(void **datap); int devfs_set_cdevpriv(void *priv, cdevpriv_dtr_t dtr); void devfs_clear_cdevpriv(void);