Lines Matching defs:zp
37 * rl = zfs_range_lock(zp, off, len, lock_type);
104 zfs_range_lock_writer(znode_t *zp, rl_t *new)
106 avl_tree_t *tree = &zp->z_range_avl;
125 if (zp->z_vnode) { /* caller is ZPL */
131 new->r_off = zp->z_size;
138 end_size = MAX(zp->z_size, new->r_off + len);
139 if (end_size > zp->z_blksz && (!ISP2(zp->z_blksz) ||
140 zp->z_blksz < zp->z_zfsvfs->z_max_blksz)) {
178 cv_wait(&rl->r_wr_cv, &zp->z_range_lock);
356 zfs_range_lock_reader(znode_t *zp, rl_t *new)
358 avl_tree_t *tree = &zp->z_range_avl;
381 cv_wait(&prev->r_rd_cv, &zp->z_range_lock);
404 cv_wait(&next->r_rd_cv, &zp->z_range_lock);
426 zfs_range_lock(znode_t *zp, uint64_t off, uint64_t len, rl_type_t type)
433 new->r_zp = zp;
444 mutex_enter(&zp->z_range_lock);
449 if (avl_numnodes(&zp->z_range_avl) == 0)
450 avl_add(&zp->z_range_avl, new);
452 zfs_range_lock_reader(zp, new);
454 zfs_range_lock_writer(zp, new); /* RL_WRITER or RL_APPEND */
455 mutex_exit(&zp->z_range_lock);
463 zfs_range_unlock_reader(znode_t *zp, rl_t *remove)
465 avl_tree_t *tree = &zp->z_range_avl;
532 znode_t *zp = rl->r_zp;
538 mutex_enter(&zp->z_range_lock);
541 avl_remove(&zp->z_range_avl, rl);
542 mutex_exit(&zp->z_range_lock);
557 zfs_range_unlock_reader(zp, rl);
558 mutex_exit(&zp->z_range_lock);
570 znode_t *zp = rl->r_zp;
573 ASSERT(avl_numnodes(&zp->z_range_avl) == 1);
580 mutex_enter(&zp->z_range_lock);
583 mutex_exit(&zp->z_range_lock);