Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

btrfs: make btrfs_ordered_extent naming consistent with btrfs_file_extent_item

ordered->start, ordered->len, and ordered->disk_len correspond to
fi->disk_bytenr, fi->num_bytes, and fi->disk_num_bytes, respectively.
It's confusing to translate between the two naming schemes. Since a
btrfs_ordered_extent is basically a pending btrfs_file_extent_item,
let's make the former use the naming from the latter.

Note that I didn't touch the names in tracepoints just in case there are
scripts depending on the current naming.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>

authored by

Omar Sandoval and committed by
David Sterba
bffe633e 313facc5

+90 -95
+2 -2
fs/btrfs/file-item.c
··· 481 481 - 1); 482 482 483 483 for (i = 0; i < nr_sectors; i++) { 484 - if (offset >= ordered->file_offset + ordered->len || 485 - offset < ordered->file_offset) { 484 + if (offset >= ordered->file_offset + ordered->num_bytes || 485 + offset < ordered->file_offset) { 486 486 unsigned long bytes_left; 487 487 488 488 sums->len = this_sum_bytes;
+3 -3
fs/btrfs/file.c
··· 1501 1501 ordered = btrfs_lookup_ordered_range(inode, start_pos, 1502 1502 last_pos - start_pos + 1); 1503 1503 if (ordered && 1504 - ordered->file_offset + ordered->len > start_pos && 1504 + ordered->file_offset + ordered->num_bytes > start_pos && 1505 1505 ordered->file_offset <= last_pos) { 1506 1506 unlock_extent_cached(&inode->io_tree, start_pos, 1507 1507 last_pos, cached_state); ··· 2426 2426 * we need to try again. 2427 2427 */ 2428 2428 if ((!ordered || 2429 - (ordered->file_offset + ordered->len <= lockstart || 2429 + (ordered->file_offset + ordered->num_bytes <= lockstart || 2430 2430 ordered->file_offset > lockend)) && 2431 2431 !filemap_range_has_page(inode->i_mapping, 2432 2432 lockstart, lockend)) { ··· 3248 3248 ordered = btrfs_lookup_first_ordered_extent(inode, locked_end); 3249 3249 3250 3250 if (ordered && 3251 - ordered->file_offset + ordered->len > alloc_start && 3251 + ordered->file_offset + ordered->num_bytes > alloc_start && 3252 3252 ordered->file_offset < alloc_end) { 3253 3253 btrfs_put_ordered_extent(ordered); 3254 3254 unlock_extent_cached(&BTRFS_I(inode)->io_tree,
+32 -38
fs/btrfs/inode.c
··· 2419 2419 struct btrfs_trans_handle *trans = NULL; 2420 2420 struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree; 2421 2421 struct extent_state *cached_state = NULL; 2422 + u64 start, end; 2422 2423 int compress_type = 0; 2423 2424 int ret = 0; 2424 - u64 logical_len = ordered_extent->len; 2425 + u64 logical_len = ordered_extent->num_bytes; 2425 2426 bool freespace_inode; 2426 2427 bool truncated = false; 2427 2428 bool range_locked = false; 2428 2429 bool clear_new_delalloc_bytes = false; 2429 2430 bool clear_reserved_extent = true; 2430 2431 unsigned int clear_bits; 2432 + 2433 + start = ordered_extent->file_offset; 2434 + end = start + ordered_extent->num_bytes - 1; 2431 2435 2432 2436 if (!test_bit(BTRFS_ORDERED_NOCOW, &ordered_extent->flags) && 2433 2437 !test_bit(BTRFS_ORDERED_PREALLOC, &ordered_extent->flags) && ··· 2445 2441 goto out; 2446 2442 } 2447 2443 2448 - btrfs_free_io_failure_record(BTRFS_I(inode), 2449 - ordered_extent->file_offset, 2450 - ordered_extent->file_offset + 2451 - ordered_extent->len - 1); 2444 + btrfs_free_io_failure_record(BTRFS_I(inode), start, end); 2452 2445 2453 2446 if (test_bit(BTRFS_ORDERED_TRUNCATED, &ordered_extent->flags)) { 2454 2447 truncated = true; ··· 2463 2462 * space for NOCOW range. 2464 2463 * As NOCOW won't cause a new delayed ref, just free the space 2465 2464 */ 2466 - btrfs_qgroup_free_data(inode, NULL, ordered_extent->file_offset, 2467 - ordered_extent->len); 2465 + btrfs_qgroup_free_data(inode, NULL, start, 2466 + ordered_extent->num_bytes); 2468 2467 btrfs_ordered_update_i_size(inode, 0, ordered_extent); 2469 2468 if (freespace_inode) 2470 2469 trans = btrfs_join_transaction_spacecache(root); ··· 2483 2482 } 2484 2483 2485 2484 range_locked = true; 2486 - lock_extent_bits(io_tree, ordered_extent->file_offset, 2487 - ordered_extent->file_offset + ordered_extent->len - 1, 2488 - &cached_state); 2485 + lock_extent_bits(io_tree, start, end, &cached_state); 2489 2486 2490 2487 if (freespace_inode) 2491 2488 trans = btrfs_join_transaction_spacecache(root); ··· 2501 2502 compress_type = ordered_extent->compress_type; 2502 2503 if (test_bit(BTRFS_ORDERED_PREALLOC, &ordered_extent->flags)) { 2503 2504 BUG_ON(compress_type); 2504 - btrfs_qgroup_free_data(inode, NULL, ordered_extent->file_offset, 2505 - ordered_extent->len); 2505 + btrfs_qgroup_free_data(inode, NULL, start, 2506 + ordered_extent->num_bytes); 2506 2507 ret = btrfs_mark_extent_written(trans, BTRFS_I(inode), 2507 2508 ordered_extent->file_offset, 2508 2509 ordered_extent->file_offset + 2509 2510 logical_len); 2510 2511 } else { 2511 2512 BUG_ON(root == fs_info->tree_root); 2512 - ret = insert_reserved_file_extent(trans, inode, 2513 - ordered_extent->file_offset, 2514 - ordered_extent->start, 2515 - ordered_extent->disk_len, 2513 + ret = insert_reserved_file_extent(trans, inode, start, 2514 + ordered_extent->disk_bytenr, 2515 + ordered_extent->disk_num_bytes, 2516 2516 logical_len, logical_len, 2517 2517 compress_type, 0, 0, 2518 2518 BTRFS_FILE_EXTENT_REG); 2519 2519 if (!ret) { 2520 2520 clear_reserved_extent = false; 2521 2521 btrfs_release_delalloc_bytes(fs_info, 2522 - ordered_extent->start, 2523 - ordered_extent->disk_len); 2522 + ordered_extent->disk_bytenr, 2523 + ordered_extent->disk_num_bytes); 2524 2524 } 2525 2525 } 2526 2526 unpin_extent_cache(&BTRFS_I(inode)->extent_tree, 2527 - ordered_extent->file_offset, ordered_extent->len, 2528 - trans->transid); 2527 + ordered_extent->file_offset, 2528 + ordered_extent->num_bytes, trans->transid); 2529 2529 if (ret < 0) { 2530 2530 btrfs_abort_transaction(trans, ret); 2531 2531 goto out; ··· 2549 2551 clear_bits |= EXTENT_LOCKED; 2550 2552 if (clear_new_delalloc_bytes) 2551 2553 clear_bits |= EXTENT_DELALLOC_NEW; 2552 - clear_extent_bit(&BTRFS_I(inode)->io_tree, 2553 - ordered_extent->file_offset, 2554 - ordered_extent->file_offset + ordered_extent->len - 1, 2555 - clear_bits, (clear_bits & EXTENT_LOCKED) ? 1 : 0, 0, 2554 + clear_extent_bit(&BTRFS_I(inode)->io_tree, start, end, clear_bits, 2555 + (clear_bits & EXTENT_LOCKED) ? 1 : 0, 0, 2556 2556 &cached_state); 2557 2557 2558 2558 if (trans) 2559 2559 btrfs_end_transaction(trans); 2560 2560 2561 2561 if (ret || truncated) { 2562 - u64 start, end; 2562 + u64 unwritten_start = start; 2563 2563 2564 2564 if (truncated) 2565 - start = ordered_extent->file_offset + logical_len; 2566 - else 2567 - start = ordered_extent->file_offset; 2568 - end = ordered_extent->file_offset + ordered_extent->len - 1; 2569 - clear_extent_uptodate(io_tree, start, end, NULL); 2565 + unwritten_start += logical_len; 2566 + clear_extent_uptodate(io_tree, unwritten_start, end, NULL); 2570 2567 2571 2568 /* Drop the cache for the part of the extent we didn't write. */ 2572 - btrfs_drop_extent_cache(BTRFS_I(inode), start, end, 0); 2569 + btrfs_drop_extent_cache(BTRFS_I(inode), unwritten_start, end, 0); 2573 2570 2574 2571 /* 2575 2572 * If the ordered extent had an IOERR or something else went ··· 2586 2593 */ 2587 2594 if (ret && btrfs_test_opt(fs_info, DISCARD)) 2588 2595 btrfs_discard_extent(fs_info, 2589 - ordered_extent->start, 2590 - ordered_extent->disk_len, NULL); 2596 + ordered_extent->disk_bytenr, 2597 + ordered_extent->disk_num_bytes, 2598 + NULL); 2591 2599 btrfs_free_reserved_extent(fs_info, 2592 - ordered_extent->start, 2593 - ordered_extent->disk_len, 1); 2600 + ordered_extent->disk_bytenr, 2601 + ordered_extent->disk_num_bytes, 1); 2594 2602 } 2595 2603 } 2596 - 2597 2604 2598 2605 /* 2599 2606 * This needs to be done to make sure anybody waiting knows we are done ··· 8221 8228 ordered = btrfs_lookup_ordered_range(BTRFS_I(inode), start, 8222 8229 page_end - start + 1); 8223 8230 if (ordered) { 8224 - end = min(page_end, ordered->file_offset + ordered->len - 1); 8231 + end = min(page_end, 8232 + ordered->file_offset + ordered->num_bytes - 1); 8225 8233 /* 8226 8234 * IO on this page will never be started, so we need 8227 8235 * to account for any ordered extents now ··· 8747 8753 else { 8748 8754 btrfs_err(fs_info, 8749 8755 "found ordered extent %llu %llu on inode cleanup", 8750 - ordered->file_offset, ordered->len); 8756 + ordered->file_offset, ordered->num_bytes); 8751 8757 btrfs_remove_ordered_extent(inode, ordered); 8752 8758 btrfs_put_ordered_extent(ordered); 8753 8759 btrfs_put_ordered_extent(ordered);
+34 -35
fs/btrfs/ordered-data.c
··· 20 20 21 21 static u64 entry_end(struct btrfs_ordered_extent *entry) 22 22 { 23 - if (entry->file_offset + entry->len < entry->file_offset) 23 + if (entry->file_offset + entry->num_bytes < entry->file_offset) 24 24 return (u64)-1; 25 - return entry->file_offset + entry->len; 25 + return entry->file_offset + entry->num_bytes; 26 26 } 27 27 28 28 /* returns NULL if the insertion worked, or it returns the node it did find ··· 112 112 static int offset_in_entry(struct btrfs_ordered_extent *entry, u64 file_offset) 113 113 { 114 114 if (file_offset < entry->file_offset || 115 - entry->file_offset + entry->len <= file_offset) 115 + entry->file_offset + entry->num_bytes <= file_offset) 116 116 return 0; 117 117 return 1; 118 118 } ··· 121 121 u64 len) 122 122 { 123 123 if (file_offset + len <= entry->file_offset || 124 - entry->file_offset + entry->len <= file_offset) 124 + entry->file_offset + entry->num_bytes <= file_offset) 125 125 return 0; 126 126 return 1; 127 127 } ··· 153 153 } 154 154 155 155 /* allocate and add a new ordered_extent into the per-inode tree. 156 - * file_offset is the logical offset in the file 157 - * 158 - * start is the disk block number of an extent already reserved in the 159 - * extent allocation tree 160 - * 161 - * len is the length of the extent 162 156 * 163 157 * The tree is given a single reference on the ordered extent that was 164 158 * inserted. 165 159 */ 166 160 static int __btrfs_add_ordered_extent(struct inode *inode, u64 file_offset, 167 - u64 start, u64 len, u64 disk_len, 168 - int type, int dio, int compress_type) 161 + u64 disk_bytenr, u64 num_bytes, 162 + u64 disk_num_bytes, int type, int dio, 163 + int compress_type) 169 164 { 170 165 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); 171 166 struct btrfs_root *root = BTRFS_I(inode)->root; ··· 174 179 return -ENOMEM; 175 180 176 181 entry->file_offset = file_offset; 177 - entry->start = start; 178 - entry->len = len; 179 - entry->disk_len = disk_len; 180 - entry->bytes_left = len; 182 + entry->disk_bytenr = disk_bytenr; 183 + entry->num_bytes = num_bytes; 184 + entry->disk_num_bytes = disk_num_bytes; 185 + entry->bytes_left = num_bytes; 181 186 entry->inode = igrab(inode); 182 187 entry->compress_type = compress_type; 183 188 entry->truncated_len = (u64)-1; ··· 185 190 set_bit(type, &entry->flags); 186 191 187 192 if (dio) { 188 - percpu_counter_add_batch(&fs_info->dio_bytes, len, 193 + percpu_counter_add_batch(&fs_info->dio_bytes, num_bytes, 189 194 fs_info->delalloc_batch); 190 195 set_bit(BTRFS_ORDERED_DIRECT, &entry->flags); 191 196 } ··· 236 241 } 237 242 238 243 int btrfs_add_ordered_extent(struct inode *inode, u64 file_offset, 239 - u64 start, u64 len, u64 disk_len, int type) 244 + u64 disk_bytenr, u64 num_bytes, u64 disk_num_bytes, 245 + int type) 240 246 { 241 - return __btrfs_add_ordered_extent(inode, file_offset, start, len, 242 - disk_len, type, 0, 247 + return __btrfs_add_ordered_extent(inode, file_offset, disk_bytenr, 248 + num_bytes, disk_num_bytes, type, 0, 243 249 BTRFS_COMPRESS_NONE); 244 250 } 245 251 246 252 int btrfs_add_ordered_extent_dio(struct inode *inode, u64 file_offset, 247 - u64 start, u64 len, u64 disk_len, int type) 253 + u64 disk_bytenr, u64 num_bytes, 254 + u64 disk_num_bytes, int type) 248 255 { 249 - return __btrfs_add_ordered_extent(inode, file_offset, start, len, 250 - disk_len, type, 1, 256 + return __btrfs_add_ordered_extent(inode, file_offset, disk_bytenr, 257 + num_bytes, disk_num_bytes, type, 1, 251 258 BTRFS_COMPRESS_NONE); 252 259 } 253 260 254 261 int btrfs_add_ordered_extent_compress(struct inode *inode, u64 file_offset, 255 - u64 start, u64 len, u64 disk_len, 256 - int type, int compress_type) 262 + u64 disk_bytenr, u64 num_bytes, 263 + u64 disk_num_bytes, int type, 264 + int compress_type) 257 265 { 258 - return __btrfs_add_ordered_extent(inode, file_offset, start, len, 259 - disk_len, type, 0, 266 + return __btrfs_add_ordered_extent(inode, file_offset, disk_bytenr, 267 + num_bytes, disk_num_bytes, type, 0, 260 268 compress_type); 261 269 } 262 270 ··· 320 322 } 321 323 322 324 dec_start = max(*file_offset, entry->file_offset); 323 - dec_end = min(*file_offset + io_size, entry->file_offset + 324 - entry->len); 325 + dec_end = min(*file_offset + io_size, 326 + entry->file_offset + entry->num_bytes); 325 327 *file_offset = dec_end; 326 328 if (dec_start > dec_end) { 327 329 btrfs_crit(fs_info, "bad ordering dec_start %llu end %llu", ··· 463 465 btrfs_mod_outstanding_extents(btrfs_inode, -1); 464 466 spin_unlock(&btrfs_inode->lock); 465 467 if (root != fs_info->tree_root) 466 - btrfs_delalloc_release_metadata(btrfs_inode, entry->len, false); 468 + btrfs_delalloc_release_metadata(btrfs_inode, entry->num_bytes, 469 + false); 467 470 468 471 if (test_bit(BTRFS_ORDERED_DIRECT, &entry->flags)) 469 - percpu_counter_add_batch(&fs_info->dio_bytes, -entry->len, 472 + percpu_counter_add_batch(&fs_info->dio_bytes, -entry->num_bytes, 470 473 fs_info->delalloc_batch); 471 474 472 475 tree = &btrfs_inode->ordered_tree; ··· 527 528 ordered = list_first_entry(&splice, struct btrfs_ordered_extent, 528 529 root_extent_list); 529 530 530 - if (range_end <= ordered->start || 531 - ordered->start + ordered->disk_len <= range_start) { 531 + if (range_end <= ordered->disk_bytenr || 532 + ordered->disk_bytenr + ordered->disk_num_bytes <= range_start) { 532 533 list_move_tail(&ordered->root_extent_list, &skipped); 533 534 cond_resched_lock(&root->ordered_extent_lock); 534 535 continue; ··· 612 613 int wait) 613 614 { 614 615 u64 start = entry->file_offset; 615 - u64 end = start + entry->len - 1; 616 + u64 end = start + entry->num_bytes - 1; 616 617 617 618 trace_btrfs_ordered_extent_start(inode, entry); 618 619 ··· 673 674 btrfs_put_ordered_extent(ordered); 674 675 break; 675 676 } 676 - if (ordered->file_offset + ordered->len <= start) { 677 + if (ordered->file_offset + ordered->num_bytes <= start) { 677 678 btrfs_put_ordered_extent(ordered); 678 679 break; 679 680 }
+14 -12
fs/btrfs/ordered-data.h
··· 67 67 /* logical offset in the file */ 68 68 u64 file_offset; 69 69 70 - /* disk byte number */ 71 - u64 start; 72 - 73 - /* ram length of the extent in bytes */ 74 - u64 len; 75 - 76 - /* extent length on disk */ 77 - u64 disk_len; 70 + /* 71 + * These fields directly correspond to the same fields in 72 + * btrfs_file_extent_item. 73 + */ 74 + u64 disk_bytenr; 75 + u64 num_bytes; 76 + u64 disk_num_bytes; 78 77 79 78 /* number of bytes that still need writing */ 80 79 u64 bytes_left; ··· 160 161 u64 *file_offset, u64 io_size, 161 162 int uptodate); 162 163 int btrfs_add_ordered_extent(struct inode *inode, u64 file_offset, 163 - u64 start, u64 len, u64 disk_len, int type); 164 + u64 disk_bytenr, u64 num_bytes, u64 disk_num_bytes, 165 + int type); 164 166 int btrfs_add_ordered_extent_dio(struct inode *inode, u64 file_offset, 165 - u64 start, u64 len, u64 disk_len, int type); 167 + u64 disk_bytenr, u64 num_bytes, 168 + u64 disk_num_bytes, int type); 166 169 int btrfs_add_ordered_extent_compress(struct inode *inode, u64 file_offset, 167 - u64 start, u64 len, u64 disk_len, 168 - int type, int compress_type); 170 + u64 disk_bytenr, u64 num_bytes, 171 + u64 disk_num_bytes, int type, 172 + int compress_type); 169 173 void btrfs_add_ordered_sum(struct btrfs_ordered_extent *entry, 170 174 struct btrfs_ordered_sum *sum); 171 175 struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct inode *inode,
+2 -2
fs/btrfs/relocation.c
··· 4668 4668 LIST_HEAD(list); 4669 4669 4670 4670 ordered = btrfs_lookup_ordered_extent(inode, file_pos); 4671 - BUG_ON(ordered->file_offset != file_pos || ordered->len != len); 4671 + BUG_ON(ordered->file_offset != file_pos || ordered->num_bytes != len); 4672 4672 4673 4673 disk_bytenr = file_pos + BTRFS_I(inode)->index_cnt; 4674 4674 ret = btrfs_lookup_csums_range(fs_info->csum_root, disk_bytenr, ··· 4692 4692 * disk_len vs real len like with real inodes since it's all 4693 4693 * disk length. 4694 4694 */ 4695 - new_bytenr = ordered->start + (sums->bytenr - disk_bytenr); 4695 + new_bytenr = ordered->disk_bytenr + sums->bytenr - disk_bytenr; 4696 4696 sums->bytenr = new_bytenr; 4697 4697 4698 4698 btrfs_add_ordered_sum(ordered, sums);
+3 -3
include/trace/events/btrfs.h
··· 496 496 TP_fast_assign_btrfs(btrfs_sb(inode->i_sb), 497 497 __entry->ino = btrfs_ino(BTRFS_I(inode)); 498 498 __entry->file_offset = ordered->file_offset; 499 - __entry->start = ordered->start; 500 - __entry->len = ordered->len; 501 - __entry->disk_len = ordered->disk_len; 499 + __entry->start = ordered->disk_bytenr; 500 + __entry->len = ordered->num_bytes; 501 + __entry->disk_len = ordered->disk_num_bytes; 502 502 __entry->bytes_left = ordered->bytes_left; 503 503 __entry->flags = ordered->flags; 504 504 __entry->compress_type = ordered->compress_type;