locked_range_t
locked_range_t *rangelock_enter(rangelock_t *,
void rangelock_exit(locked_range_t *);
void rangelock_reduce(locked_range_t *, uint64_t, uint64_t);
const locked_range_t *rl1 = (const locked_range_t *)arg1;
const locked_range_t *rl2 = (const locked_range_t *)arg2;
sizeof (locked_range_t), offsetof(locked_range_t, lr_node));
rangelock_enter_writer(rangelock_t *rl, locked_range_t *new)
locked_range_t *lr;
lr = (locked_range_t *)avl_nearest(tree, where, AVL_AFTER);
lr = (locked_range_t *)avl_nearest(tree, where, AVL_BEFORE);
static locked_range_t *
rangelock_proxify(avl_tree_t *tree, locked_range_t *lr)
locked_range_t *proxy;
proxy = kmem_alloc(sizeof (locked_range_t), KM_SLEEP);
static locked_range_t *
rangelock_split(avl_tree_t *tree, locked_range_t *lr, uint64_t off)
locked_range_t *rear = kmem_alloc(sizeof (locked_range_t), KM_SLEEP);
locked_range_t *front = rangelock_proxify(tree, lr);
locked_range_t *lr = kmem_alloc(sizeof (locked_range_t), KM_SLEEP);
rangelock_add_reader(avl_tree_t *tree, locked_range_t *new,
locked_range_t *prev, avl_index_t where)
locked_range_t *next;
rangelock_enter_reader(rangelock_t *rl, locked_range_t *new)
locked_range_t *prev, *next;
prev = (locked_range_t *)avl_nearest(tree, where, AVL_BEFORE);
next = (locked_range_t *)avl_nearest(tree, where, AVL_AFTER);
locked_range_t *
locked_range_t *new = kmem_alloc(sizeof (locked_range_t), KM_SLEEP);
rangelock_exit_reader(rangelock_t *rl, locked_range_t *remove)
locked_range_t *lr = avl_find(tree, remove, NULL);
locked_range_t *next = NULL;
kmem_free(lr, sizeof (locked_range_t));
kmem_free(remove, sizeof (locked_range_t));
rangelock_exit(locked_range_t *lr)
kmem_free(lr, sizeof (locked_range_t));
rangelock_reduce(locked_range_t *lr, uint64_t off, uint64_t len)
locked_range_t *lr;
locked_range_t *lr = rangelock_enter(&zp->z_rangelock,
locked_range_t *lr;
zfs_rangelock_cb(locked_range_t *new, void *arg)
locked_range_t *lr;
locked_range_t *lr;
locked_range_t *lr;
locked_range_t *lr = rangelock_enter(&zv->zv_rangelock, off, resid,
locked_range_t *lr = rangelock_enter(&zv->zv_rangelock,
locked_range_t *lr = rangelock_enter(&zv->zv_rangelock,
locked_range_t *lr;
locked_range_t *lr;
locked_range_t *lr;
locked_range_t *lr = rangelock_enter(sl->sl_zvol_rl_hdl, offset, len,
locked_range_t *lr = rangelock_enter(sl->sl_zvol_rl_hdl, offset, len,