Patch "btrfs: zoned: don't skip block group profile checks on conventional zones" has been added to the 6.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    btrfs: zoned: don't skip block group profile checks on conventional zones

to the 6.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     btrfs-zoned-don-t-skip-block-group-profile-checks-on.patch
and it can be found in the queue-6.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 16f7392bb59801f1a876304ac9c05a26ea248286
Author: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
Date:   Mon Feb 12 11:59:52 2024 +0100

    btrfs: zoned: don't skip block group profile checks on conventional zones
    
    [ Upstream commit 5906333cc4af7b3fdb8cfff1cb3e8e579bd13174 ]
    
    On a zoned filesystem with conventional zones, we're skipping the block
    group profile checks for the conventional zones.
    
    This allows converting a zoned filesystem's data block groups to RAID when
    all of the zones backing the chunk are on conventional zones.  But this
    will lead to problems, once we're trying to allocate chunks backed by
    sequential zones.
    
    So also check for conventional zones when loading a block group's profile
    on them.
    
    Reported-by: HAN Yuwei <hrx@xxxxxxxx>
    Link: https://lore.kernel.org/all/1ACD2E3643008A17+da260584-2c7f-432a-9e22-9d390aae84cc@xxxxxxxx/#t
    Reviewed-by: Boris Burkov <boris@xxxxxx>
    Reviewed-by: Naohiro Aota <naohiro.aota@xxxxxxx>
    Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
    Reviewed-by: David Sterba <dsterba@xxxxxxxx>
    Signed-off-by: David Sterba <dsterba@xxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 3779e76a15d64..524532f992746 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -1661,6 +1661,15 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new)
 	}
 
 out:
+	/* Reject non SINGLE data profiles without RST */
+	if ((map->type & BTRFS_BLOCK_GROUP_DATA) &&
+	    (map->type & BTRFS_BLOCK_GROUP_PROFILE_MASK) &&
+	    !fs_info->stripe_root) {
+		btrfs_err(fs_info, "zoned: data %s needs raid-stripe-tree",
+			  btrfs_bg_type_to_raid_name(map->type));
+		return -EINVAL;
+	}
+
 	if (cache->alloc_offset > cache->zone_capacity) {
 		btrfs_err(fs_info,
 "zoned: invalid write pointer %llu (larger than zone capacity %llu) in block group %llu",




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux