Lines Matching refs:zo

79 	zfs_onexit_t *zo;  in zfs_onexit_init()  local
81 zo = *zop = kmem_zalloc(sizeof (zfs_onexit_t), KM_SLEEP); in zfs_onexit_init()
82 mutex_init(&zo->zo_lock, NULL, MUTEX_DEFAULT, NULL); in zfs_onexit_init()
83 list_create(&zo->zo_actions, sizeof (zfs_onexit_action_node_t), in zfs_onexit_init()
88 zfs_onexit_destroy(zfs_onexit_t *zo) in zfs_onexit_destroy() argument
92 mutex_enter(&zo->zo_lock); in zfs_onexit_destroy()
93 while ((ap = list_head(&zo->zo_actions)) != NULL) { in zfs_onexit_destroy()
94 list_remove(&zo->zo_actions, ap); in zfs_onexit_destroy()
95 mutex_exit(&zo->zo_lock); in zfs_onexit_destroy()
98 mutex_enter(&zo->zo_lock); in zfs_onexit_destroy()
100 mutex_exit(&zo->zo_lock); in zfs_onexit_destroy()
102 list_destroy(&zo->zo_actions); in zfs_onexit_destroy()
103 mutex_destroy(&zo->zo_lock); in zfs_onexit_destroy()
104 kmem_free(zo, sizeof (zfs_onexit_t)); in zfs_onexit_destroy()
108 zfs_onexit_minor_to_state(minor_t minor, zfs_onexit_t **zo) in zfs_onexit_minor_to_state() argument
110 *zo = zfsdev_get_soft_state(minor, ZSST_CTLDEV); in zfs_onexit_minor_to_state()
111 if (*zo == NULL) in zfs_onexit_minor_to_state()
127 zfs_onexit_t *zo; in zfs_onexit_fd_hold() local
135 ret = zfs_onexit_minor_to_state(*minorp, &zo); in zfs_onexit_fd_hold()
155 zfs_onexit_t *zo; in zfs_onexit_add_cb() local
159 error = zfs_onexit_minor_to_state(minor, &zo); in zfs_onexit_add_cb()
168 mutex_enter(&zo->zo_lock); in zfs_onexit_add_cb()
169 list_insert_tail(&zo->zo_actions, ap); in zfs_onexit_add_cb()
170 mutex_exit(&zo->zo_lock); in zfs_onexit_add_cb()
178 zfs_onexit_find_cb(zfs_onexit_t *zo, uint64_t action_handle) in zfs_onexit_find_cb() argument
184 ASSERT(MUTEX_HELD(&zo->zo_lock)); in zfs_onexit_find_cb()
187 l = &zo->zo_actions; in zfs_onexit_find_cb()
201 zfs_onexit_t *zo; in zfs_onexit_del_cb() local
205 error = zfs_onexit_minor_to_state(minor, &zo); in zfs_onexit_del_cb()
209 mutex_enter(&zo->zo_lock); in zfs_onexit_del_cb()
210 ap = zfs_onexit_find_cb(zo, action_handle); in zfs_onexit_del_cb()
212 list_remove(&zo->zo_actions, ap); in zfs_onexit_del_cb()
213 mutex_exit(&zo->zo_lock); in zfs_onexit_del_cb()
218 mutex_exit(&zo->zo_lock); in zfs_onexit_del_cb()
233 zfs_onexit_t *zo; in zfs_onexit_cb_data() local
239 error = zfs_onexit_minor_to_state(minor, &zo); in zfs_onexit_cb_data()
243 mutex_enter(&zo->zo_lock); in zfs_onexit_cb_data()
244 ap = zfs_onexit_find_cb(zo, action_handle); in zfs_onexit_cb_data()
249 mutex_exit(&zo->zo_lock); in zfs_onexit_cb_data()