+++ /dev/null
-From a9f189716cf15913c453299d72f69c51a9b0f86b Mon Sep 17 00:00:00 2001
-From: Naohiro Aota <naota@elisp.net>
-Date: Tue, 6 Jun 2023 14:36:34 +0900
-Subject: btrfs: move out now unused BG from the reclaim list
-
-From: Naohiro Aota <naota@elisp.net>
-
-commit a9f189716cf15913c453299d72f69c51a9b0f86b upstream.
-
-An unused block group is easy to remove to free up space and should be
-reclaimed fast. Such block group can often already be a target of the
-reclaim process. As we check list_empty(&bg->bg_list), we keep it in the
-reclaim list. That block group is never reclaimed until the file system
-is filled e.g. up to 75%.
-
-Instead, we can move unused block group to the unused list and delete it
-fast.
-
-Fixes: 18bb8bbf13c1 ("btrfs: zoned: automatically reclaim zones")
-CC: stable@vger.kernel.org # 5.15+
-Reviewed-by: Filipe Manana <fdmanana@suse.com>
-Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
-Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/block-group.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/fs/btrfs/block-group.c
-+++ b/fs/btrfs/block-group.c
-@@ -1475,11 +1475,14 @@ void btrfs_mark_bg_unused(struct btrfs_b
- {
- struct btrfs_fs_info *fs_info = bg->fs_info;
-
-+ trace_btrfs_add_unused_block_group(bg);
- spin_lock(&fs_info->unused_bgs_lock);
- if (list_empty(&bg->bg_list)) {
- btrfs_get_block_group(bg);
-- trace_btrfs_add_unused_block_group(bg);
- list_add_tail(&bg->bg_list, &fs_info->unused_bgs);
-+ } else {
-+ /* Pull out the block group from the reclaim_bgs list. */
-+ list_move_tail(&bg->bg_list, &fs_info->unused_bgs);
- }
- spin_unlock(&fs_info->unused_bgs_lock);
- }
btrfs-delete-unused-bgs-while-reclaiming-bgs.patch
btrfs-bail-out-reclaim-process-if-filesystem-is-read-only.patch
btrfs-reinsert-bgs-failed-to-reclaim.patch
-btrfs-move-out-now-unused-bg-from-the-reclaim-list.patch
btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
btrfs-fix-extent-buffer-leak-after-tree-mod-log-failure-at-split_node.patch
btrfs-do-not-bug_on-on-tree-mod-log-failure-at-__btrfs_cow_block.patch
+++ /dev/null
-From a9f189716cf15913c453299d72f69c51a9b0f86b Mon Sep 17 00:00:00 2001
-From: Naohiro Aota <naota@elisp.net>
-Date: Tue, 6 Jun 2023 14:36:34 +0900
-Subject: btrfs: move out now unused BG from the reclaim list
-
-From: Naohiro Aota <naota@elisp.net>
-
-commit a9f189716cf15913c453299d72f69c51a9b0f86b upstream.
-
-An unused block group is easy to remove to free up space and should be
-reclaimed fast. Such block group can often already be a target of the
-reclaim process. As we check list_empty(&bg->bg_list), we keep it in the
-reclaim list. That block group is never reclaimed until the file system
-is filled e.g. up to 75%.
-
-Instead, we can move unused block group to the unused list and delete it
-fast.
-
-Fixes: 18bb8bbf13c1 ("btrfs: zoned: automatically reclaim zones")
-CC: stable@vger.kernel.org # 5.15+
-Reviewed-by: Filipe Manana <fdmanana@suse.com>
-Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
-Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/block-group.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/fs/btrfs/block-group.c
-+++ b/fs/btrfs/block-group.c
-@@ -1503,11 +1503,14 @@ void btrfs_mark_bg_unused(struct btrfs_b
- {
- struct btrfs_fs_info *fs_info = bg->fs_info;
-
-+ trace_btrfs_add_unused_block_group(bg);
- spin_lock(&fs_info->unused_bgs_lock);
- if (list_empty(&bg->bg_list)) {
- btrfs_get_block_group(bg);
-- trace_btrfs_add_unused_block_group(bg);
- list_add_tail(&bg->bg_list, &fs_info->unused_bgs);
-+ } else {
-+ /* Pull out the block group from the reclaim_bgs list. */
-+ list_move_tail(&bg->bg_list, &fs_info->unused_bgs);
- }
- spin_unlock(&fs_info->unused_bgs_lock);
- }
btrfs-bail-out-reclaim-process-if-filesystem-is-read-only.patch
btrfs-add-block-group-tree-to-lockdep-classes.patch
btrfs-reinsert-bgs-failed-to-reclaim.patch
-btrfs-move-out-now-unused-bg-from-the-reclaim-list.patch
btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
btrfs-fix-extent-buffer-leak-after-tree-mod-log-failure-at-split_node.patch
btrfs-do-not-bug_on-on-tree-mod-log-failure-at-__btrfs_cow_block.patch
+++ /dev/null
-From a9f189716cf15913c453299d72f69c51a9b0f86b Mon Sep 17 00:00:00 2001
-From: Naohiro Aota <naota@elisp.net>
-Date: Tue, 6 Jun 2023 14:36:34 +0900
-Subject: btrfs: move out now unused BG from the reclaim list
-
-From: Naohiro Aota <naota@elisp.net>
-
-commit a9f189716cf15913c453299d72f69c51a9b0f86b upstream.
-
-An unused block group is easy to remove to free up space and should be
-reclaimed fast. Such block group can often already be a target of the
-reclaim process. As we check list_empty(&bg->bg_list), we keep it in the
-reclaim list. That block group is never reclaimed until the file system
-is filled e.g. up to 75%.
-
-Instead, we can move unused block group to the unused list and delete it
-fast.
-
-Fixes: 18bb8bbf13c1 ("btrfs: zoned: automatically reclaim zones")
-CC: stable@vger.kernel.org # 5.15+
-Reviewed-by: Filipe Manana <fdmanana@suse.com>
-Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
-Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/block-group.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/fs/btrfs/block-group.c
-+++ b/fs/btrfs/block-group.c
-@@ -1640,11 +1640,14 @@ void btrfs_mark_bg_unused(struct btrfs_b
- {
- struct btrfs_fs_info *fs_info = bg->fs_info;
-
-+ trace_btrfs_add_unused_block_group(bg);
- spin_lock(&fs_info->unused_bgs_lock);
- if (list_empty(&bg->bg_list)) {
- btrfs_get_block_group(bg);
-- trace_btrfs_add_unused_block_group(bg);
- list_add_tail(&bg->bg_list, &fs_info->unused_bgs);
-+ } else {
-+ /* Pull out the block group from the reclaim_bgs list. */
-+ list_move_tail(&bg->bg_list, &fs_info->unused_bgs);
- }
- spin_unlock(&fs_info->unused_bgs_lock);
- }
btrfs-bail-out-reclaim-process-if-filesystem-is-read-only.patch
btrfs-add-block-group-tree-to-lockdep-classes.patch
btrfs-reinsert-bgs-failed-to-reclaim.patch
-btrfs-move-out-now-unused-bg-from-the-reclaim-list.patch
btrfs-fix-race-when-deleting-quota-root-from-the-dirty-cow-roots-list.patch
btrfs-add-missing-error-handling-when-logging-operation-while-cowing-extent-buffer.patch
btrfs-fix-extent-buffer-leak-after-tree-mod-log-failure-at-split_node.patch