diff options
| author | David Sterba <[email protected]> | 2025-03-27 16:19:18 +0000 |
|---|---|---|
| committer | David Sterba <[email protected]> | 2025-05-15 12:30:40 +0000 |
| commit | 6aa79c4f25197cc54479dc87d79ecd45571fb062 (patch) | |
| tree | 9a117262edd3e1541f3ef70c40fd1734aaadb265 /fs/btrfs/extent_map.c | |
| parent | btrfs: pass a pointer to get_range_bits() to cache first search result (diff) | |
| download | kernel-6aa79c4f25197cc54479dc87d79ecd45571fb062.tar.gz kernel-6aa79c4f25197cc54479dc87d79ecd45571fb062.zip | |
btrfs: use rb_entry_safe() where possible to simplify code
Simplify conditionally reading an rb_entry(), there's the
rb_entry_safe() helper that checks the node pointer for NULL so we don't
have to write it explicitly.
Reviewed-by: Johannes Thumshirn <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'fs/btrfs/extent_map.c')
| -rw-r--r-- | fs/btrfs/extent_map.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c index 7f46abbd6311..d62c36a0b7ba 100644 --- a/fs/btrfs/extent_map.c +++ b/fs/btrfs/extent_map.c @@ -361,8 +361,8 @@ static void try_merge_map(struct btrfs_inode *inode, struct extent_map *em) if (em->start != 0) { rb = rb_prev(&em->rb_node); - if (rb) - merge = rb_entry(rb, struct extent_map, rb_node); + merge = rb_entry_safe(rb, struct extent_map, rb_node); + if (rb && can_merge_extent_map(merge) && mergeable_maps(merge, em)) { em->start = merge->start; em->len += merge->len; @@ -379,8 +379,8 @@ static void try_merge_map(struct btrfs_inode *inode, struct extent_map *em) } rb = rb_next(&em->rb_node); - if (rb) - merge = rb_entry(rb, struct extent_map, rb_node); + merge = rb_entry_safe(rb, struct extent_map, rb_node); + if (rb && can_merge_extent_map(merge) && mergeable_maps(em, merge)) { em->len += merge->len; if (em->disk_bytenr < EXTENT_MAP_LAST_BYTE) |
