Lines Matching refs:ordered

439 	struct btrfs_ordered_extent *ordered;  in btrfs_get_logged_extents()  local
449 ordered = rb_entry(n, struct btrfs_ordered_extent, rb_node); in btrfs_get_logged_extents()
450 if (ordered->file_offset > end) in btrfs_get_logged_extents()
452 if (entry_end(ordered) <= start) in btrfs_get_logged_extents()
454 if (test_and_set_bit(BTRFS_ORDERED_LOGGED, &ordered->flags)) in btrfs_get_logged_extents()
456 list_add(&ordered->log_list, logged_list); in btrfs_get_logged_extents()
457 atomic_inc(&ordered->refs); in btrfs_get_logged_extents()
464 struct btrfs_ordered_extent *ordered; in btrfs_put_logged_extents() local
467 ordered = list_first_entry(logged_list, in btrfs_put_logged_extents()
470 list_del_init(&ordered->log_list); in btrfs_put_logged_extents()
471 btrfs_put_ordered_extent(ordered); in btrfs_put_logged_extents()
488 struct btrfs_ordered_extent *ordered; in btrfs_wait_logged_extents() local
494 ordered = list_first_entry(&log->logged_list[index], in btrfs_wait_logged_extents()
497 list_del_init(&ordered->log_list); in btrfs_wait_logged_extents()
498 inode = ordered->inode; in btrfs_wait_logged_extents()
501 if (!test_bit(BTRFS_ORDERED_IO_DONE, &ordered->flags) && in btrfs_wait_logged_extents()
502 !test_bit(BTRFS_ORDERED_DIRECT, &ordered->flags)) { in btrfs_wait_logged_extents()
503 u64 start = ordered->file_offset; in btrfs_wait_logged_extents()
504 u64 end = ordered->file_offset + ordered->len - 1; in btrfs_wait_logged_extents()
509 wait_event(ordered->wait, test_bit(BTRFS_ORDERED_IO_DONE, in btrfs_wait_logged_extents()
510 &ordered->flags)); in btrfs_wait_logged_extents()
520 if (!test_bit(BTRFS_ORDERED_COMPLETE, &ordered->flags)) { in btrfs_wait_logged_extents()
525 if (!test_bit(BTRFS_ORDERED_COMPLETE, &ordered->flags)) { in btrfs_wait_logged_extents()
526 set_bit(BTRFS_ORDERED_PENDING, &ordered->flags); in btrfs_wait_logged_extents()
531 btrfs_put_ordered_extent(ordered); in btrfs_wait_logged_extents()
539 struct btrfs_ordered_extent *ordered; in btrfs_free_logged_extents() local
544 ordered = list_first_entry(&log->logged_list[index], in btrfs_free_logged_extents()
547 list_del_init(&ordered->log_list); in btrfs_free_logged_extents()
549 btrfs_put_ordered_extent(ordered); in btrfs_free_logged_extents()
652 struct btrfs_ordered_extent *ordered; in btrfs_run_ordered_extent_work() local
654 ordered = container_of(work, struct btrfs_ordered_extent, flush_work); in btrfs_run_ordered_extent_work()
655 btrfs_start_ordered_extent(ordered->inode, ordered, 1); in btrfs_run_ordered_extent_work()
656 complete(&ordered->completion); in btrfs_run_ordered_extent_work()
666 struct btrfs_ordered_extent *ordered, *next; in btrfs_wait_ordered_extents() local
676 ordered = list_first_entry(&splice, struct btrfs_ordered_extent, in btrfs_wait_ordered_extents()
678 list_move_tail(&ordered->root_extent_list, in btrfs_wait_ordered_extents()
680 atomic_inc(&ordered->refs); in btrfs_wait_ordered_extents()
683 btrfs_init_work(&ordered->flush_work, in btrfs_wait_ordered_extents()
686 list_add_tail(&ordered->work_list, &works); in btrfs_wait_ordered_extents()
688 &ordered->flush_work); in btrfs_wait_ordered_extents()
699 list_for_each_entry_safe(ordered, next, &works, work_list) { in btrfs_wait_ordered_extents()
700 list_del_init(&ordered->work_list); in btrfs_wait_ordered_extents()
701 wait_for_completion(&ordered->completion); in btrfs_wait_ordered_extents()
702 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_extents()
782 struct btrfs_ordered_extent *ordered; in btrfs_wait_ordered_range() local
810 ordered = btrfs_lookup_first_ordered_extent(inode, end); in btrfs_wait_ordered_range()
811 if (!ordered) in btrfs_wait_ordered_range()
813 if (ordered->file_offset > orig_end) { in btrfs_wait_ordered_range()
814 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_range()
817 if (ordered->file_offset + ordered->len <= start) { in btrfs_wait_ordered_range()
818 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_range()
821 btrfs_start_ordered_extent(inode, ordered, 1); in btrfs_wait_ordered_range()
822 end = ordered->file_offset; in btrfs_wait_ordered_range()
823 if (test_bit(BTRFS_ORDERED_IOERR, &ordered->flags)) in btrfs_wait_ordered_range()
825 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_range()
944 struct btrfs_ordered_extent *ordered) in btrfs_ordered_update_i_size() argument
956 if (ordered) { in btrfs_ordered_update_i_size()
957 offset = entry_end(ordered); in btrfs_ordered_update_i_size()
958 if (test_bit(BTRFS_ORDERED_TRUNCATED, &ordered->flags)) in btrfs_ordered_update_i_size()
960 ordered->file_offset + in btrfs_ordered_update_i_size()
961 ordered->truncated_len); in btrfs_ordered_update_i_size()
986 (!ordered || ordered->outstanding_isize <= disk_i_size)) in btrfs_ordered_update_i_size()
994 if (ordered) { in btrfs_ordered_update_i_size()
995 node = rb_prev(&ordered->rb_node); in btrfs_ordered_update_i_size()
1027 if (ordered && in btrfs_ordered_update_i_size()
1028 ordered->outstanding_isize > in btrfs_ordered_update_i_size()
1031 ordered->outstanding_isize; in btrfs_ordered_update_i_size()
1041 if (ordered && ordered->outstanding_isize > new_i_size) in btrfs_ordered_update_i_size()
1042 new_i_size = min_t(u64, ordered->outstanding_isize, i_size); in btrfs_ordered_update_i_size()
1053 if (ordered) in btrfs_ordered_update_i_size()
1054 set_bit(BTRFS_ORDERED_UPDATED_ISIZE, &ordered->flags); in btrfs_ordered_update_i_size()
1068 struct btrfs_ordered_extent *ordered; in btrfs_find_ordered_sum() local
1075 ordered = btrfs_lookup_ordered_extent(inode, offset); in btrfs_find_ordered_sum()
1076 if (!ordered) in btrfs_find_ordered_sum()
1080 list_for_each_entry_reverse(ordered_sum, &ordered->list, list) { in btrfs_find_ordered_sum()
1099 btrfs_put_ordered_extent(ordered); in btrfs_find_ordered_sum()