summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file.c
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2019-04-04 02:45:36 -0400
committerDavid Sterba <dsterba@suse.com>2019-04-29 13:02:49 -0400
commitffd4bb2a19cd29681f5b70a200654ab92619de8a (patch)
tree112f304a05675a63d26f9b65ea839fb1bbbf94ab /fs/btrfs/file.c
parent82fa113fccc41fe5204b4ce35341d69ebde0020f (diff)
btrfs: extent-tree: Use btrfs_ref to refactor btrfs_free_extent()
Similar to btrfs_inc_extent_ref(), use btrfs_ref to replace the long parameter list and the confusing @owner parameter. Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r--fs/btrfs/file.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index a4fc89a84baf..7e85dca0e6f2 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -997,11 +997,14 @@ delete_extent_item:
997 extent_end = ALIGN(extent_end, 997 extent_end = ALIGN(extent_end,
998 fs_info->sectorsize); 998 fs_info->sectorsize);
999 } else if (update_refs && disk_bytenr > 0) { 999 } else if (update_refs && disk_bytenr > 0) {
1000 ret = btrfs_free_extent(trans, root, 1000 btrfs_init_generic_ref(&ref,
1001 disk_bytenr, num_bytes, 0, 1001 BTRFS_DROP_DELAYED_REF,
1002 disk_bytenr, num_bytes, 0);
1003 btrfs_init_data_ref(&ref,
1002 root->root_key.objectid, 1004 root->root_key.objectid,
1003 key.objectid, key.offset - 1005 key.objectid,
1004 extent_offset); 1006 key.offset - extent_offset);
1007 ret = btrfs_free_extent(trans, &ref);
1005 BUG_ON(ret); /* -ENOMEM */ 1008 BUG_ON(ret); /* -ENOMEM */
1006 inode_sub_bytes(inode, 1009 inode_sub_bytes(inode,
1007 extent_end - key.offset); 1010 extent_end - key.offset);
@@ -1318,6 +1321,9 @@ again:
1318 1321
1319 other_start = end; 1322 other_start = end;
1320 other_end = 0; 1323 other_end = 0;
1324 btrfs_init_generic_ref(&ref, BTRFS_DROP_DELAYED_REF, bytenr,
1325 num_bytes, 0);
1326 btrfs_init_data_ref(&ref, root->root_key.objectid, ino, orig_offset);
1321 if (extent_mergeable(leaf, path->slots[0] + 1, 1327 if (extent_mergeable(leaf, path->slots[0] + 1,
1322 ino, bytenr, orig_offset, 1328 ino, bytenr, orig_offset,
1323 &other_start, &other_end)) { 1329 &other_start, &other_end)) {
@@ -1328,9 +1334,7 @@ again:
1328 extent_end = other_end; 1334 extent_end = other_end;
1329 del_slot = path->slots[0] + 1; 1335 del_slot = path->slots[0] + 1;
1330 del_nr++; 1336 del_nr++;
1331 ret = btrfs_free_extent(trans, root, bytenr, num_bytes, 1337 ret = btrfs_free_extent(trans, &ref);
1332 0, root->root_key.objectid,
1333 ino, orig_offset);
1334 if (ret) { 1338 if (ret) {
1335 btrfs_abort_transaction(trans, ret); 1339 btrfs_abort_transaction(trans, ret);
1336 goto out; 1340 goto out;
@@ -1348,9 +1352,7 @@ again:
1348 key.offset = other_start; 1352 key.offset = other_start;
1349 del_slot = path->slots[0]; 1353 del_slot = path->slots[0];
1350 del_nr++; 1354 del_nr++;
1351 ret = btrfs_free_extent(trans, root, bytenr, num_bytes, 1355 ret = btrfs_free_extent(trans, &ref);
1352 0, root->root_key.objectid,
1353 ino, orig_offset);
1354 if (ret) { 1356 if (ret) {
1355 btrfs_abort_transaction(trans, ret); 1357 btrfs_abort_transaction(trans, ret);
1356 goto out; 1358 goto out;