Lines Matching full:ordered

17 	struct btrfs_ordered_extent *ordered;  member
40 struct btrfs_ordered_extent *ordered; in lock_extent_direct() local
63 * doing DIO to, so we need to make sure there's no ordered in lock_extent_direct()
66 ordered = btrfs_lookup_ordered_range(BTRFS_I(inode), lockstart, in lock_extent_direct()
76 if (!ordered && in lock_extent_direct()
83 if (ordered) { in lock_extent_direct()
85 btrfs_put_ordered_extent(ordered); in lock_extent_direct()
90 * If we are doing a DIO read and the ordered extent we in lock_extent_direct()
96 * created an ordered extent for a previous extent map in lock_extent_direct()
105 test_bit(BTRFS_ORDERED_DIRECT, &ordered->flags)) in lock_extent_direct()
106 btrfs_start_ordered_extent(ordered); in lock_extent_direct()
109 btrfs_put_ordered_extent(ordered); in lock_extent_direct()
118 * ordered dio extent we created before but did not have in lock_extent_direct()
121 * ordered extent to complete while holding a lock on in lock_extent_direct()
145 struct btrfs_ordered_extent *ordered; in btrfs_create_dio_extent() local
153 ordered = btrfs_alloc_ordered_extent(inode, start, file_extent, in btrfs_create_dio_extent()
156 if (IS_ERR(ordered)) { in btrfs_create_dio_extent()
162 em = ERR_CAST(ordered); in btrfs_create_dio_extent()
164 ASSERT(!dio_data->ordered); in btrfs_create_dio_extent()
165 dio_data->ordered = ordered; in btrfs_create_dio_extent()
333 * We have created our ordered extent, so we can now release our reservation in btrfs_get_blocks_direct_write()
626 btrfs_finish_ordered_extent(dio_data->ordered, NULL, in btrfs_dio_iomap_end()
634 btrfs_put_ordered_extent(dio_data->ordered); in btrfs_dio_iomap_end()
635 dio_data->ordered = NULL; in btrfs_dio_iomap_end()
658 btrfs_finish_ordered_extent(bbio->ordered, NULL, in btrfs_dio_end_io()
671 struct btrfs_ordered_extent *ordered) in btrfs_extract_ordered_extent() argument
678 /* Must always be called for the beginning of an ordered extent. */ in btrfs_extract_ordered_extent()
679 if (WARN_ON_ONCE(start != ordered->disk_bytenr)) in btrfs_extract_ordered_extent()
682 /* No need to split if the ordered extent covers the entire bio. */ in btrfs_extract_ordered_extent()
683 if (ordered->disk_num_bytes == len) { in btrfs_extract_ordered_extent()
684 refcount_inc(&ordered->refs); in btrfs_extract_ordered_extent()
685 bbio->ordered = ordered; in btrfs_extract_ordered_extent()
693 if (!test_bit(BTRFS_ORDERED_NOCOW, &ordered->flags)) { in btrfs_extract_ordered_extent()
695 ordered->num_bytes, len, in btrfs_extract_ordered_extent()
696 ordered->disk_bytenr); in btrfs_extract_ordered_extent()
701 new = btrfs_split_ordered_extent(ordered, len); in btrfs_extract_ordered_extent()
704 bbio->ordered = new; in btrfs_extract_ordered_extent()
728 * the ordered extent to match the submitted bio. Hang on to the in btrfs_dio_submit_io()
731 * remaining pages is blocked on the outstanding ordered extent. in btrfs_dio_submit_io()
736 ret = btrfs_extract_ordered_extent(bbio, dio_data->ordered); in btrfs_dio_submit_io()
738 btrfs_finish_ordered_extent(dio_data->ordered, NULL, in btrfs_dio_submit_io()
891 * an ordered extent, and after that it will fault in the pages that the in btrfs_direct_write()
894 * find that ordered extent and then wait for it to complete (at in btrfs_direct_write()
896 * obviously the ordered extent can never complete as we didn't submit in btrfs_direct_write()
1053 * our own ordered extent). This is because for direct IO reads, in btrfs_direct_read()