Lines Matching refs:ordered_extent
82 static int btrfs_finish_ordered_io(struct btrfs_ordered_extent *ordered_extent);
3018 static int btrfs_finish_ordered_io(struct btrfs_ordered_extent *ordered_extent) in btrfs_finish_ordered_io() argument
3020 struct inode *inode = ordered_extent->inode; in btrfs_finish_ordered_io()
3029 u64 logical_len = ordered_extent->len; in btrfs_finish_ordered_io()
3036 if (!test_bit(BTRFS_ORDERED_NOCOW, &ordered_extent->flags) && in btrfs_finish_ordered_io()
3037 !test_bit(BTRFS_ORDERED_PREALLOC, &ordered_extent->flags) && in btrfs_finish_ordered_io()
3038 !test_bit(BTRFS_ORDERED_DIRECT, &ordered_extent->flags)) in btrfs_finish_ordered_io()
3043 if (test_bit(BTRFS_ORDERED_IOERR, &ordered_extent->flags)) { in btrfs_finish_ordered_io()
3049 ordered_extent->file_offset, in btrfs_finish_ordered_io()
3050 ordered_extent->file_offset + in btrfs_finish_ordered_io()
3051 ordered_extent->len - 1); in btrfs_finish_ordered_io()
3053 if (test_bit(BTRFS_ORDERED_TRUNCATED, &ordered_extent->flags)) { in btrfs_finish_ordered_io()
3055 logical_len = ordered_extent->truncated_len; in btrfs_finish_ordered_io()
3061 if (test_bit(BTRFS_ORDERED_NOCOW, &ordered_extent->flags)) { in btrfs_finish_ordered_io()
3062 BUG_ON(!list_empty(&ordered_extent->list)); /* Logic error */ in btrfs_finish_ordered_io()
3069 btrfs_qgroup_free_data(inode, NULL, ordered_extent->file_offset, in btrfs_finish_ordered_io()
3070 ordered_extent->len); in btrfs_finish_ordered_io()
3071 btrfs_ordered_update_i_size(inode, 0, ordered_extent); in btrfs_finish_ordered_io()
3089 lock_extent_bits(io_tree, ordered_extent->file_offset, in btrfs_finish_ordered_io()
3090 ordered_extent->file_offset + ordered_extent->len - 1, in btrfs_finish_ordered_io()
3093 ret = test_range_bit(io_tree, ordered_extent->file_offset, in btrfs_finish_ordered_io()
3094 ordered_extent->file_offset + ordered_extent->len - 1, in btrfs_finish_ordered_io()
3100 new = record_old_file_extents(inode, ordered_extent); in btrfs_finish_ordered_io()
3102 clear_extent_bit(io_tree, ordered_extent->file_offset, in btrfs_finish_ordered_io()
3103 ordered_extent->file_offset + ordered_extent->len - 1, in btrfs_finish_ordered_io()
3119 if (test_bit(BTRFS_ORDERED_COMPRESSED, &ordered_extent->flags)) in btrfs_finish_ordered_io()
3120 compress_type = ordered_extent->compress_type; in btrfs_finish_ordered_io()
3121 if (test_bit(BTRFS_ORDERED_PREALLOC, &ordered_extent->flags)) { in btrfs_finish_ordered_io()
3123 btrfs_qgroup_free_data(inode, NULL, ordered_extent->file_offset, in btrfs_finish_ordered_io()
3124 ordered_extent->len); in btrfs_finish_ordered_io()
3126 ordered_extent->file_offset, in btrfs_finish_ordered_io()
3127 ordered_extent->file_offset + in btrfs_finish_ordered_io()
3132 ordered_extent->file_offset, in btrfs_finish_ordered_io()
3133 ordered_extent->start, in btrfs_finish_ordered_io()
3134 ordered_extent->disk_len, in btrfs_finish_ordered_io()
3141 ordered_extent->start, in btrfs_finish_ordered_io()
3142 ordered_extent->disk_len); in btrfs_finish_ordered_io()
3146 ordered_extent->file_offset, ordered_extent->len, in btrfs_finish_ordered_io()
3153 ret = add_pending_csums(trans, inode, &ordered_extent->list); in btrfs_finish_ordered_io()
3159 btrfs_ordered_update_i_size(inode, 0, ordered_extent); in btrfs_finish_ordered_io()
3175 ordered_extent->file_offset, in btrfs_finish_ordered_io()
3176 ordered_extent->file_offset + in btrfs_finish_ordered_io()
3177 ordered_extent->len - 1, in btrfs_finish_ordered_io()
3190 start = ordered_extent->file_offset + logical_len; in btrfs_finish_ordered_io()
3192 start = ordered_extent->file_offset; in btrfs_finish_ordered_io()
3193 end = ordered_extent->file_offset + ordered_extent->len - 1; in btrfs_finish_ordered_io()
3211 !test_bit(BTRFS_ORDERED_NOCOW, &ordered_extent->flags) && in btrfs_finish_ordered_io()
3212 !test_bit(BTRFS_ORDERED_PREALLOC, &ordered_extent->flags)) in btrfs_finish_ordered_io()
3214 ordered_extent->start, in btrfs_finish_ordered_io()
3215 ordered_extent->disk_len, 1); in btrfs_finish_ordered_io()
3223 btrfs_remove_ordered_extent(inode, ordered_extent); in btrfs_finish_ordered_io()
3236 btrfs_put_ordered_extent(ordered_extent); in btrfs_finish_ordered_io()
3238 btrfs_put_ordered_extent(ordered_extent); in btrfs_finish_ordered_io()
3245 struct btrfs_ordered_extent *ordered_extent; in finish_ordered_fn() local
3246 ordered_extent = container_of(work, struct btrfs_ordered_extent, work); in finish_ordered_fn()
3247 btrfs_finish_ordered_io(ordered_extent); in finish_ordered_fn()
3255 struct btrfs_ordered_extent *ordered_extent = NULL; in btrfs_writepage_endio_finish_ordered() local
3262 if (!btrfs_dec_test_ordered_pending(inode, &ordered_extent, start, in btrfs_writepage_endio_finish_ordered()
3274 btrfs_init_work(&ordered_extent->work, func, finish_ordered_fn, NULL, in btrfs_writepage_endio_finish_ordered()
3276 btrfs_queue_work(wq, &ordered_extent->work); in btrfs_writepage_endio_finish_ordered()