Skip to content

Commit f72ad18

Browse files
Liu Bokdave
authored andcommitted
Btrfs: pass delayed_refs directly to btrfs_find_delayed_ref_head
All we need is @delayed_refs, all callers have get it ahead of calling btrfs_find_delayed_ref_head since lock needs to be acquired firstly, there is no reason to deference it again inside the function. Signed-off-by: Liu Bo <[email protected]> Reviewed-by: David Sterba <[email protected]> Signed-off-by: David Sterba <[email protected]>
1 parent d07b852 commit f72ad18

File tree

4 files changed

+7
-9
lines changed

4 files changed

+7
-9
lines changed

fs/btrfs/backref.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1284,7 +1284,7 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
12841284
*/
12851285
delayed_refs = &trans->transaction->delayed_refs;
12861286
spin_lock(&delayed_refs->lock);
1287-
head = btrfs_find_delayed_ref_head(trans, bytenr);
1287+
head = btrfs_find_delayed_ref_head(delayed_refs, bytenr);
12881288
if (head) {
12891289
if (!mutex_trylock(&head->mutex)) {
12901290
atomic_inc(&head->node.refs);

fs/btrfs/delayed-ref.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -909,11 +909,8 @@ int btrfs_add_delayed_extent_op(struct btrfs_fs_info *fs_info,
909909
* the head node if any where found, or NULL if not.
910910
*/
911911
struct btrfs_delayed_ref_head *
912-
btrfs_find_delayed_ref_head(struct btrfs_trans_handle *trans, u64 bytenr)
912+
btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, u64 bytenr)
913913
{
914-
struct btrfs_delayed_ref_root *delayed_refs;
915-
916-
delayed_refs = &trans->transaction->delayed_refs;
917914
return find_ref_head(&delayed_refs->href_root, bytenr, 0);
918915
}
919916

fs/btrfs/delayed-ref.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,8 @@ void btrfs_merge_delayed_refs(struct btrfs_trans_handle *trans,
261261
struct btrfs_delayed_ref_head *head);
262262

263263
struct btrfs_delayed_ref_head *
264-
btrfs_find_delayed_ref_head(struct btrfs_trans_handle *trans, u64 bytenr);
264+
btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
265+
u64 bytenr);
265266
int btrfs_delayed_ref_lock(struct btrfs_trans_handle *trans,
266267
struct btrfs_delayed_ref_head *head);
267268
static inline void btrfs_delayed_ref_unlock(struct btrfs_delayed_ref_head *head)

fs/btrfs/extent-tree.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -888,7 +888,7 @@ int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans,
888888

889889
delayed_refs = &trans->transaction->delayed_refs;
890890
spin_lock(&delayed_refs->lock);
891-
head = btrfs_find_delayed_ref_head(trans, bytenr);
891+
head = btrfs_find_delayed_ref_head(delayed_refs, bytenr);
892892
if (head) {
893893
if (!mutex_trylock(&head->mutex)) {
894894
atomic_inc(&head->node.refs);
@@ -3041,7 +3041,7 @@ static noinline int check_delayed_ref(struct btrfs_trans_handle *trans,
30413041

30423042
delayed_refs = &trans->transaction->delayed_refs;
30433043
spin_lock(&delayed_refs->lock);
3044-
head = btrfs_find_delayed_ref_head(trans, bytenr);
3044+
head = btrfs_find_delayed_ref_head(delayed_refs, bytenr);
30453045
if (!head) {
30463046
spin_unlock(&delayed_refs->lock);
30473047
return 0;
@@ -7091,7 +7091,7 @@ static noinline int check_ref_cleanup(struct btrfs_trans_handle *trans,
70917091

70927092
delayed_refs = &trans->transaction->delayed_refs;
70937093
spin_lock(&delayed_refs->lock);
7094-
head = btrfs_find_delayed_ref_head(trans, bytenr);
7094+
head = btrfs_find_delayed_ref_head(delayed_refs, bytenr);
70957095
if (!head)
70967096
goto out_delayed_unlock;
70977097

0 commit comments

Comments
 (0)