diff options
author | Qu Wenruo <wqu@suse.com> | 2019-04-04 02:45:36 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2019-04-29 13:02:49 -0400 |
commit | ffd4bb2a19cd29681f5b70a200654ab92619de8a (patch) | |
tree | 112f304a05675a63d26f9b65ea839fb1bbbf94ab /fs/btrfs/file.c | |
parent | 82fa113fccc41fe5204b4ce35341d69ebde0020f (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.c | 22 |
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; |