Lines Matching defs:ordered

131  * look find the first ordered struct that has this offset, otherwise
159 * The tree is given a single reference on the ordered extent that was
182 * The ordered extent has reserved qgroup space, release now
227 "inconsistency in ordered tree at offset %llu",
285 * when an ordered extent is finished. If the list covers more than one
286 * ordered extent, it is split across multiples.
301 * of the file. The IO may span ordered extents. If
306 * to make sure this function only returns 1 once for a given ordered extent.
349 "bad ordered accounting left %llu size %llu",
374 * of the file. The IO should not span ordered extents. If
379 * to make sure this function only returns 1 once for a given ordered extent.
412 "bad ordered accounting left %llu size %llu",
436 * used to drop a reference on an ordered extent. This will free
463 * remove an ordered extent from the tree. No references are dropped
543 struct btrfs_ordered_extent *ordered;
545 ordered = container_of(work, struct btrfs_ordered_extent, flush_work);
546 btrfs_start_ordered_extent(ordered, 1);
547 complete(&ordered->completion);
551 * wait for all the ordered extents in a root. This is done when balancing
561 struct btrfs_ordered_extent *ordered, *next;
569 ordered = list_first_entry(&splice, struct btrfs_ordered_extent,
572 if (range_end <= ordered->disk_bytenr ||
573 ordered->disk_bytenr + ordered->disk_num_bytes <= range_start) {
574 list_move_tail(&ordered->root_extent_list, &skipped);
579 list_move_tail(&ordered->root_extent_list,
581 refcount_inc(&ordered->refs);
584 btrfs_init_work(&ordered->flush_work,
586 list_add_tail(&ordered->work_list, &works);
587 btrfs_queue_work(fs_info->flush_workers, &ordered->flush_work);
599 list_for_each_entry_safe(ordered, next, &works, work_list) {
600 list_del_init(&ordered->work_list);
601 wait_for_completion(&ordered->completion);
602 btrfs_put_ordered_extent(ordered);
646 * Used to start IO or wait for a given ordered extent to finish.
674 * Used to wait on ordered extents across a large range of bytes.
682 struct btrfs_ordered_extent *ordered;
701 * for any ordered extents that haven't completed yet. This is to make
703 * before the ordered extents complete - to avoid failures (-EEXIST)
704 * when adding the new ordered extents to the ordered tree.
710 ordered = btrfs_lookup_first_ordered_extent(BTRFS_I(inode), end);
711 if (!ordered)
713 if (ordered->file_offset > orig_end) {
714 btrfs_put_ordered_extent(ordered);
717 if (ordered->file_offset + ordered->num_bytes <= start) {
718 btrfs_put_ordered_extent(ordered);
721 btrfs_start_ordered_extent(ordered, 1);
722 end = ordered->file_offset;
724 * If the ordered extent had an error save the error but don't
725 * exit without waiting first for all other ordered extents in
728 if (test_bit(BTRFS_ORDERED_IOERR, &ordered->flags))
730 btrfs_put_ordered_extent(ordered);
739 * find an ordered extent corresponding to file_offset. return NULL if
765 /* Since the DIO code tries to lock a wide area we need to look for any ordered
806 * Adds all ordered extents to the given list. The list ends up sorted by the
807 * file_offset of the ordered extents.
819 struct btrfs_ordered_extent *ordered;
821 ordered = rb_entry(n, struct btrfs_ordered_extent, rb_node);
823 if (test_bit(BTRFS_ORDERED_LOGGED, &ordered->flags))
826 ASSERT(list_empty(&ordered->log_list));
827 list_add_tail(&ordered->log_list, list);
828 refcount_inc(&ordered->refs);
858 * search the ordered extents for one corresponding to 'offset' and
867 struct btrfs_ordered_extent *ordered;
876 ordered = btrfs_lookup_ordered_extent(inode, offset);
877 if (!ordered)
881 list_for_each_entry_reverse(ordered_sum, &ordered->list, list) {
898 btrfs_put_ordered_extent(ordered);
904 * ordered extents in it are run to completion.
906 * @inode: Inode whose ordered tree is to be searched
919 struct btrfs_ordered_extent *ordered;
928 ordered = btrfs_lookup_ordered_range(inode, start,
930 if (!ordered) {
941 btrfs_start_ordered_extent(ordered, 1);
942 btrfs_put_ordered_extent(ordered);