btrfs: defrag: use list_last_entry() at defrag_collect_targets()
authorFilipe Manana <fdmanana@suse.com>
Fri, 2 May 2025 10:23:02 +0000 (11:23 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 15 May 2025 12:30:55 +0000 (14:30 +0200)
Instead of using list_entry() against the list's prev entry, use
list_last_entry(), which removes the need to know the last member is
accessed through the prev list pointer and the naming makes it easier
to reason about what we are doing.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/defrag.c

index 48e12c8a90a7bd7fbfa01856b16bad3251bfe735..1831618579cb8e4a95ab807251731e1063601c7c 100644 (file)
@@ -1068,8 +1068,8 @@ static int defrag_collect_targets(struct btrfs_inode *inode,
                        /* Empty target list, no way to merge with last entry */
                        if (list_empty(target_list))
                                goto next;
-                       last = list_entry(target_list->prev,
-                                         struct defrag_target_range, list);
+                       last = list_last_entry(target_list,
+                                              struct defrag_target_range, list);
                        /* Not mergeable with last entry */
                        if (last->start + last->len != cur)
                                goto next;
@@ -1087,8 +1087,8 @@ add:
                if (!list_empty(target_list)) {
                        struct defrag_target_range *last;
 
-                       last = list_entry(target_list->prev,
-                                         struct defrag_target_range, list);
+                       last = list_last_entry(target_list,
+                                              struct defrag_target_range, list);
                        ASSERT(last->start + last->len <= cur);
                        if (last->start + last->len == cur) {
                                /* Mergeable, enlarge the last entry */