Lines Matching refs:zo
77 zfs_onexit_t *zo; in zfs_onexit_init() local
79 zo = *zop = kmem_zalloc(sizeof (zfs_onexit_t), KM_SLEEP); in zfs_onexit_init()
80 mutex_init(&zo->zo_lock, NULL, MUTEX_DEFAULT, NULL); in zfs_onexit_init()
81 list_create(&zo->zo_actions, sizeof (zfs_onexit_action_node_t), in zfs_onexit_init()
86 zfs_onexit_destroy(zfs_onexit_t *zo) in zfs_onexit_destroy() argument
90 mutex_enter(&zo->zo_lock); in zfs_onexit_destroy()
91 while ((ap = list_remove_head(&zo->zo_actions)) != NULL) { in zfs_onexit_destroy()
92 mutex_exit(&zo->zo_lock); in zfs_onexit_destroy()
95 mutex_enter(&zo->zo_lock); in zfs_onexit_destroy()
97 mutex_exit(&zo->zo_lock); in zfs_onexit_destroy()
99 list_destroy(&zo->zo_actions); in zfs_onexit_destroy()
100 mutex_destroy(&zo->zo_lock); in zfs_onexit_destroy()
101 kmem_free(zo, sizeof (zfs_onexit_t)); in zfs_onexit_destroy()
113 zfs_onexit_t *zo = NULL; in zfs_onexit_fd_hold() local
125 zo = zfsdev_get_state(*minorp, ZST_ONEXIT); in zfs_onexit_fd_hold()
126 if (zo == NULL) { in zfs_onexit_fd_hold()
140 zfs_onexit_minor_to_state(minor_t minor, zfs_onexit_t **zo) in zfs_onexit_minor_to_state() argument
142 *zo = zfsdev_get_state(minor, ZST_ONEXIT); in zfs_onexit_minor_to_state()
143 if (*zo == NULL) in zfs_onexit_minor_to_state()
156 zfs_onexit_t *zo; in zfs_onexit_add_cb() local
160 error = zfs_onexit_minor_to_state(minor, &zo); in zfs_onexit_add_cb()
169 mutex_enter(&zo->zo_lock); in zfs_onexit_add_cb()
170 list_insert_tail(&zo->zo_actions, ap); in zfs_onexit_add_cb()
171 mutex_exit(&zo->zo_lock); in zfs_onexit_add_cb()