* Destroy a mqfs instance */
| 695 | * Destroy a mqfs instance |
| 696 | */ |
| 697 | static int |
| 698 | mqfs_uninit(struct vfsconf *vfc) |
| 699 | { |
| 700 | struct mqfs_info *mi; |
| 701 | |
| 702 | if (!unloadable) |
| 703 | return (EOPNOTSUPP); |
| 704 | osd_jail_deregister(mqfs_osd_jail_slot); |
| 705 | EVENTHANDLER_DEREGISTER(process_exit, exit_tag); |
| 706 | mi = &mqfs_data; |
| 707 | mqfs_destroy(mi->mi_root); |
| 708 | mi->mi_root = NULL; |
| 709 | mqfs_fileno_uninit(mi); |
| 710 | sx_destroy(&mi->mi_lock); |
| 711 | uma_zdestroy(mqnode_zone); |
| 712 | uma_zdestroy(mqueue_zone); |
| 713 | uma_zdestroy(mvdata_zone); |
| 714 | uma_zdestroy(mqnoti_zone); |
| 715 | return (0); |
| 716 | } |
| 717 | |
| 718 | /* |
| 719 | * task routine |
nothing calls this directly
no test coverage detected