Lines Matching full:ordered
41 #include "ordered-data.h"
99 * Cleanup all submitted ordered extents in specified range to handle errors
105 * to be released, which we want to happen only when finishing the ordered
462 * This is done inside an ordered work queue, and the compression
464 * two, and the ordered work queue takes care of making sure that
761 * phase two of compressed writeback. This is the ordered portion
967 * allocate extents on disk for the range, and create ordered data structs
1091 * at out_unlock label to free meta of this ordered in cow_file_range()
1096 * skip current ordered extent. in cow_file_range()
1130 * free metadata of current ordered extent, we're OK to exit. in cow_file_range()
1150 * failed to create the respective ordered extent, then it means that in cow_file_range()
1739 * from freeing metadata of created ordered extent. in run_delalloc_nocow()
1755 * handler, as metadata for created ordered extent will only in run_delalloc_nocow()
2147 * checksummed and sums are attached onto the ordered extent record.
2149 * At IO completion time the cums attached on the ordered extent record
2236 * given a list of ordered sums record them in the inode. This happens
2332 struct btrfs_ordered_extent *ordered; in btrfs_writepage_fixup_worker() local
2370 * while waiting for the ordered extent. in btrfs_writepage_fixup_worker()
2399 /* already ordered? We're done */ in btrfs_writepage_fixup_worker()
2403 ordered = btrfs_lookup_ordered_range(inode, page_start, PAGE_SIZE); in btrfs_writepage_fixup_worker()
2404 if (ordered) { in btrfs_writepage_fixup_worker()
2408 btrfs_start_ordered_extent(ordered, 1); in btrfs_writepage_fixup_worker()
2409 btrfs_put_ordered_extent(ordered); in btrfs_writepage_fixup_worker()
2462 * properly happens and the data=ordered rules are followed.
2464 * In our case any range that doesn't have the ORDERED bit set
2466 * to fix it up. The async helper will wait for ordered extents, set
2475 /* this page is properly in the ordered list */ in btrfs_writepage_cow_fixup()
2624 * As ordered data IO finishes, this gets called so we can finish
2625 * an ordered extent if the range of bytes in the file it covers are
2763 * If we failed to finish this ordered extent for any reason we in btrfs_finish_ordered_io()
2764 * need to make sure BTRFS_ORDERED_IOERR is set on the ordered in btrfs_finish_ordered_io()
2768 * marking this ordered extent as failed. in btrfs_finish_ordered_io()
2782 * If the ordered extent had an IOERR or something else went in btrfs_finish_ordered_io()
2783 * wrong we need to return the space for this ordered extent in btrfs_finish_ordered_io()
2812 * updating everything for this ordered extent. in btrfs_finish_ordered_io()
4576 struct btrfs_ordered_extent *ordered; in btrfs_truncate_block() local
4644 ordered = btrfs_lookup_ordered_extent(BTRFS_I(inode), block_start); in btrfs_truncate_block()
4645 if (ordered) { in btrfs_truncate_block()
4650 btrfs_start_ordered_extent(ordered, 1); in btrfs_truncate_block()
4651 btrfs_put_ordered_extent(ordered); in btrfs_truncate_block()
4985 * those expensive operations on a per page basis and do only the ordered io
7007 * This function will flush ordered extents in the range to ensure proper
7016 * any ordered extents.
7167 struct btrfs_ordered_extent *ordered; in lock_extent_direct() local
7175 * doing DIO to, so we need to make sure there's no ordered in lock_extent_direct()
7178 ordered = btrfs_lookup_ordered_range(BTRFS_I(inode), lockstart, in lock_extent_direct()
7188 if (!ordered && in lock_extent_direct()
7196 if (ordered) { in lock_extent_direct()
7198 * If we are doing a DIO read and the ordered extent we in lock_extent_direct()
7204 * created an ordered extent for a previous extent map in lock_extent_direct()
7213 test_bit(BTRFS_ORDERED_DIRECT, &ordered->flags)) in lock_extent_direct()
7214 btrfs_start_ordered_extent(ordered, 1); in lock_extent_direct()
7217 btrfs_put_ordered_extent(ordered); in lock_extent_direct()
7226 * ordered dio extent we created before but did not have in lock_extent_direct()
7229 * ordered extent to complete while holding a lock on in lock_extent_direct()
7613 * this and loads of dio_bio->bi_status after this are fully ordered. in btrfs_dio_private_put()
7711 struct btrfs_ordered_extent *ordered = NULL; in __endio_write_update_ordered() local
7724 if (btrfs_dec_test_first_ordered_pending(inode, &ordered, in __endio_write_update_ordered()
7728 btrfs_init_work(&ordered->work, finish_ordered_fn, NULL, in __endio_write_update_ordered()
7730 btrfs_queue_work(wq, &ordered->work); in __endio_write_update_ordered()
7733 * If btrfs_dec_test_ordered_pending does not find any ordered in __endio_write_update_ordered()
7739 * Our bio might span multiple ordered extents. In this case in __endio_write_update_ordered()
7744 ordered = NULL; in __endio_write_update_ordered()
7832 * or ordered extents whether or not we submit any bios.
8147 * VM, we need to make sure we have the inode referenced for the ordered in btrfs_writepage()
8217 struct btrfs_ordered_extent *ordered; in btrfs_invalidatepage() local
8230 * the PagePrivate2 bit and do ordered accounting in btrfs_invalidatepage()
8244 * still safe to wait for ordered extent to finish. in btrfs_invalidatepage()
8256 ordered = btrfs_lookup_ordered_range(inode, start, page_end - start + 1); in btrfs_invalidatepage()
8257 if (ordered) { in btrfs_invalidatepage()
8259 ordered->file_offset + ordered->num_bytes - 1); in btrfs_invalidatepage()
8262 * to account for any ordered extents now in btrfs_invalidatepage()
8280 set_bit(BTRFS_ORDERED_TRUNCATED, &ordered->flags); in btrfs_invalidatepage()
8281 new_len = start - ordered->file_offset; in btrfs_invalidatepage()
8282 if (new_len < ordered->truncated_len) in btrfs_invalidatepage()
8283 ordered->truncated_len = new_len; in btrfs_invalidatepage()
8286 if (btrfs_dec_test_ordered_pending(inode, &ordered, in btrfs_invalidatepage()
8289 btrfs_finish_ordered_io(ordered); in btrfs_invalidatepage()
8291 btrfs_put_ordered_extent(ordered); in btrfs_invalidatepage()
8306 * 1) Already written to disk or ordered extent already submitted in btrfs_invalidatepage()
8351 struct btrfs_ordered_extent *ordered; in btrfs_page_mkwrite() local
8409 * we can't set the delalloc bits if there are pending ordered in btrfs_page_mkwrite()
8412 ordered = btrfs_lookup_ordered_range(BTRFS_I(inode), page_start, in btrfs_page_mkwrite()
8414 if (ordered) { in btrfs_page_mkwrite()
8418 btrfs_start_ordered_extent(ordered, 1); in btrfs_page_mkwrite()
8419 btrfs_put_ordered_extent(ordered); in btrfs_page_mkwrite()
8749 struct btrfs_ordered_extent *ordered; in btrfs_destroy_inode() local
8772 ordered = btrfs_lookup_first_ordered_extent(inode, (u64)-1); in btrfs_destroy_inode()
8773 if (!ordered) in btrfs_destroy_inode()
8777 "found ordered extent %llu %llu on inode cleanup", in btrfs_destroy_inode()
8778 ordered->file_offset, ordered->num_bytes); in btrfs_destroy_inode()
8779 btrfs_remove_ordered_extent(inode, ordered); in btrfs_destroy_inode()
8780 btrfs_put_ordered_extent(ordered); in btrfs_destroy_inode()
8781 btrfs_put_ordered_extent(ordered); in btrfs_destroy_inode()