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()
334 * We have created our ordered extent, so we can now release our reservation in btrfs_get_blocks_direct_write()
627 btrfs_finish_ordered_extent(dio_data->ordered, NULL, in btrfs_dio_iomap_end()
635 btrfs_put_ordered_extent(dio_data->ordered); in btrfs_dio_iomap_end()
636 dio_data->ordered = NULL; in btrfs_dio_iomap_end()
659 btrfs_finish_ordered_extent(bbio->ordered, NULL, in btrfs_dio_end_io()
672 struct btrfs_ordered_extent *ordered) in btrfs_extract_ordered_extent() argument
679 /* Must always be called for the beginning of an ordered extent. */ in btrfs_extract_ordered_extent()
680 if (WARN_ON_ONCE(start != ordered->disk_bytenr)) in btrfs_extract_ordered_extent()
683 /* No need to split if the ordered extent covers the entire bio. */ in btrfs_extract_ordered_extent()
684 if (ordered->disk_num_bytes == len) { in btrfs_extract_ordered_extent()
685 refcount_inc(&ordered->refs); in btrfs_extract_ordered_extent()
686 bbio->ordered = ordered; in btrfs_extract_ordered_extent()
694 if (!test_bit(BTRFS_ORDERED_NOCOW, &ordered->flags)) { in btrfs_extract_ordered_extent()
696 ordered->num_bytes, len, in btrfs_extract_ordered_extent()
697 ordered->disk_bytenr); in btrfs_extract_ordered_extent()
702 new = btrfs_split_ordered_extent(ordered, len); in btrfs_extract_ordered_extent()
705 bbio->ordered = new; in btrfs_extract_ordered_extent()
729 * the ordered extent to match the submitted bio. Hang on to the in btrfs_dio_submit_io()
732 * remaining pages is blocked on the outstanding ordered extent. in btrfs_dio_submit_io()
737 ret = btrfs_extract_ordered_extent(bbio, dio_data->ordered); in btrfs_dio_submit_io()
739 btrfs_finish_ordered_extent(dio_data->ordered, NULL, in btrfs_dio_submit_io()
880 * an ordered extent, and after that it will fault in the pages that the in btrfs_direct_write()
883 * find that ordered extent and then wait for it to complete (at in btrfs_direct_write()
885 * obviously the ordered extent can never complete as we didn't submit in btrfs_direct_write()
1042 * our own ordered extent). This is because for direct IO reads, in btrfs_direct_read()