Lines Matching refs:prev
313 zfs_locked_range_t *prev, avl_index_t where) in zfs_rangelock_add_reader() argument
326 if (prev != NULL) { in zfs_rangelock_add_reader()
327 if (prev->lr_offset + prev->lr_length <= off) { in zfs_rangelock_add_reader()
328 prev = NULL; in zfs_rangelock_add_reader()
329 } else if (prev->lr_offset != off) { in zfs_rangelock_add_reader()
334 prev = zfs_rangelock_split(tree, prev, off); in zfs_rangelock_add_reader()
335 prev = AVL_NEXT(tree, prev); /* move to rear range */ in zfs_rangelock_add_reader()
338 ASSERT((prev == NULL) || (prev->lr_offset == off)); in zfs_rangelock_add_reader()
340 if (prev != NULL) in zfs_rangelock_add_reader()
341 next = prev; in zfs_rangelock_add_reader()
363 for (prev = NULL; next; prev = next, next = AVL_NEXT(tree, next)) { in zfs_rangelock_add_reader()
366 if (prev != NULL && prev->lr_offset + prev->lr_length < in zfs_rangelock_add_reader()
370 prev->lr_offset + prev->lr_length); in zfs_rangelock_add_reader()
372 prev->lr_offset + prev->lr_length, in zfs_rangelock_add_reader()
374 (prev->lr_offset + prev->lr_length)); in zfs_rangelock_add_reader()
394 zfs_rangelock_new_proxy(tree, prev->lr_offset + prev->lr_length, in zfs_rangelock_add_reader()
395 (off + len) - (prev->lr_offset + prev->lr_length)); in zfs_rangelock_add_reader()
407 zfs_locked_range_t *prev, *next; in zfs_rangelock_enter_reader() local
416 prev = avl_find(tree, new, &where); in zfs_rangelock_enter_reader()
417 if (prev == NULL) in zfs_rangelock_enter_reader()
418 prev = avl_nearest(tree, where, AVL_BEFORE); in zfs_rangelock_enter_reader()
423 if (prev && (off < prev->lr_offset + prev->lr_length)) { in zfs_rangelock_enter_reader()
424 if ((prev->lr_type == RL_WRITER) || (prev->lr_write_wanted)) { in zfs_rangelock_enter_reader()
427 if (!prev->lr_read_wanted) { in zfs_rangelock_enter_reader()
428 cv_init(&prev->lr_read_cv, in zfs_rangelock_enter_reader()
430 prev->lr_read_wanted = B_TRUE; in zfs_rangelock_enter_reader()
432 cv_wait(&prev->lr_read_cv, &rl->rl_lock); in zfs_rangelock_enter_reader()
435 if (off + len < prev->lr_offset + prev->lr_length) in zfs_rangelock_enter_reader()
443 if (prev != NULL) in zfs_rangelock_enter_reader()
444 next = AVL_NEXT(tree, prev); in zfs_rangelock_enter_reader()
470 zfs_rangelock_add_reader(tree, new, prev, where); in zfs_rangelock_enter_reader()