diff options
author | green <green@FreeBSD.org> | 2002-02-16 17:35:05 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 2002-02-16 17:35:05 +0000 |
commit | 5c8476e5d9fdf9e081e9a77169f6d47581defbb6 (patch) | |
tree | f42e6cd36c9961566807228309df5c73c96f32b5 /sys/kern/kern_conf.c | |
parent | cfada7e2ddee51c5f8633c21aaab54d1945ab950 (diff) | |
download | FreeBSD-src-5c8476e5d9fdf9e081e9a77169f6d47581defbb6.zip FreeBSD-src-5c8476e5d9fdf9e081e9a77169f6d47581defbb6.tar.gz |
Add revoke_and_destroy_dev(), to be used by devices which decide when
they choose to destroy themselves without regard to whether or not
they are open.
Diffstat (limited to 'sys/kern/kern_conf.c')
-rw-r--r-- | sys/kern/kern_conf.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c index a9264a2..4263f92 100644 --- a/sys/kern/kern_conf.c +++ b/sys/kern/kern_conf.c @@ -362,6 +362,19 @@ make_dev_alias(dev_t pdev, const char *fmt, ...) } void +revoke_and_destroy_dev(dev_t dev) +{ + struct vnode *vp; + + GIANT_REQUIRED; + + vp = SLIST_FIRST(&dev->si_hlist); + if (vp != NULL) + VOP_REVOKE(vp, REVOKEALL); + destroy_dev(dev); +} + +void destroy_dev(dev_t dev) { |