Lines Matching refs:ordered

440 	struct btrfs_ordered_extent *ordered;  in btrfs_get_logged_extents()  local
450 ordered = rb_entry(n, struct btrfs_ordered_extent, rb_node); in btrfs_get_logged_extents()
451 if (ordered->file_offset > end) in btrfs_get_logged_extents()
453 if (entry_end(ordered) <= start) in btrfs_get_logged_extents()
455 if (test_and_set_bit(BTRFS_ORDERED_LOGGED, &ordered->flags)) in btrfs_get_logged_extents()
457 list_add(&ordered->log_list, logged_list); in btrfs_get_logged_extents()
458 atomic_inc(&ordered->refs); in btrfs_get_logged_extents()
465 struct btrfs_ordered_extent *ordered; in btrfs_put_logged_extents() local
468 ordered = list_first_entry(logged_list, in btrfs_put_logged_extents()
471 list_del_init(&ordered->log_list); in btrfs_put_logged_extents()
472 btrfs_put_ordered_extent(ordered); in btrfs_put_logged_extents()
489 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()
500 if (!test_bit(BTRFS_ORDERED_IO_DONE, &ordered->flags) && in btrfs_wait_logged_extents()
501 !test_bit(BTRFS_ORDERED_DIRECT, &ordered->flags)) { in btrfs_wait_logged_extents()
502 struct inode *inode = ordered->inode; 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()
512 list_add_tail(&ordered->trans_list, &trans->ordered); in btrfs_wait_logged_extents()
520 struct btrfs_ordered_extent *ordered; in btrfs_free_logged_extents() local
525 ordered = list_first_entry(&log->logged_list[index], in btrfs_free_logged_extents()
528 list_del_init(&ordered->log_list); in btrfs_free_logged_extents()
530 btrfs_put_ordered_extent(ordered); in btrfs_free_logged_extents()
598 struct btrfs_ordered_extent *ordered; in btrfs_run_ordered_extent_work() local
600 ordered = container_of(work, struct btrfs_ordered_extent, flush_work); in btrfs_run_ordered_extent_work()
601 btrfs_start_ordered_extent(ordered->inode, ordered, 1); in btrfs_run_ordered_extent_work()
602 complete(&ordered->completion); in btrfs_run_ordered_extent_work()
612 struct btrfs_ordered_extent *ordered, *next; in btrfs_wait_ordered_extents() local
622 ordered = list_first_entry(&splice, struct btrfs_ordered_extent, in btrfs_wait_ordered_extents()
624 list_move_tail(&ordered->root_extent_list, in btrfs_wait_ordered_extents()
626 atomic_inc(&ordered->refs); in btrfs_wait_ordered_extents()
629 btrfs_init_work(&ordered->flush_work, in btrfs_wait_ordered_extents()
632 list_add_tail(&ordered->work_list, &works); in btrfs_wait_ordered_extents()
634 &ordered->flush_work); in btrfs_wait_ordered_extents()
645 list_for_each_entry_safe(ordered, next, &works, work_list) { in btrfs_wait_ordered_extents()
646 list_del_init(&ordered->work_list); in btrfs_wait_ordered_extents()
647 wait_for_completion(&ordered->completion); in btrfs_wait_ordered_extents()
648 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_extents()
728 struct btrfs_ordered_extent *ordered; in btrfs_wait_ordered_range() local
756 ordered = btrfs_lookup_first_ordered_extent(inode, end); in btrfs_wait_ordered_range()
757 if (!ordered) in btrfs_wait_ordered_range()
759 if (ordered->file_offset > orig_end) { in btrfs_wait_ordered_range()
760 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_range()
763 if (ordered->file_offset + ordered->len <= start) { in btrfs_wait_ordered_range()
764 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_range()
767 btrfs_start_ordered_extent(inode, ordered, 1); in btrfs_wait_ordered_range()
768 end = ordered->file_offset; in btrfs_wait_ordered_range()
769 if (test_bit(BTRFS_ORDERED_IOERR, &ordered->flags)) in btrfs_wait_ordered_range()
771 btrfs_put_ordered_extent(ordered); in btrfs_wait_ordered_range()
876 struct btrfs_ordered_extent *ordered) in btrfs_ordered_update_i_size() argument
888 if (ordered) { in btrfs_ordered_update_i_size()
889 offset = entry_end(ordered); in btrfs_ordered_update_i_size()
890 if (test_bit(BTRFS_ORDERED_TRUNCATED, &ordered->flags)) in btrfs_ordered_update_i_size()
892 ordered->file_offset + in btrfs_ordered_update_i_size()
893 ordered->truncated_len); in btrfs_ordered_update_i_size()
918 (!ordered || ordered->outstanding_isize <= disk_i_size)) in btrfs_ordered_update_i_size()
926 if (ordered) { in btrfs_ordered_update_i_size()
927 node = rb_prev(&ordered->rb_node); in btrfs_ordered_update_i_size()
959 if (ordered && in btrfs_ordered_update_i_size()
960 ordered->outstanding_isize > in btrfs_ordered_update_i_size()
963 ordered->outstanding_isize; in btrfs_ordered_update_i_size()
973 if (ordered && ordered->outstanding_isize > new_i_size) in btrfs_ordered_update_i_size()
974 new_i_size = min_t(u64, ordered->outstanding_isize, i_size); in btrfs_ordered_update_i_size()
985 if (ordered) in btrfs_ordered_update_i_size()
986 set_bit(BTRFS_ORDERED_UPDATED_ISIZE, &ordered->flags); in btrfs_ordered_update_i_size()
1000 struct btrfs_ordered_extent *ordered; in btrfs_find_ordered_sum() local
1007 ordered = btrfs_lookup_ordered_extent(inode, offset); in btrfs_find_ordered_sum()
1008 if (!ordered) in btrfs_find_ordered_sum()
1012 list_for_each_entry_reverse(ordered_sum, &ordered->list, list) { in btrfs_find_ordered_sum()
1031 btrfs_put_ordered_extent(ordered); in btrfs_find_ordered_sum()