• Naohiro Aota's avatar
    btrfs: zoned: defer loading zone info after opening trees · 73651042
    Naohiro Aota authored
    This is a preparation patch to implement zone emulation on a regular
    device.
    
    To emulate a zoned filesystem on a regular (non-zoned) device, we need to
    decide an emulated zone size. Instead of making it a compile-time static
    value, we'll make it configurable at mkfs time. Since we have one zone ==
    one device extent restriction, we can determine the emulated zone size
    from the size of a device extent. We can extend btrfs_get_dev_zone_info()
    to show a regular device filled with conventional zones once the zone size
    is decided.
    
    The current call site of btrfs_get_dev_zone_info() during the mount process
    is earlier than loading the file system trees so that we don't know the
    size of a device extent at this point. Thus we can't slice a regular device
    to conventional zones.
    
    This patch introduces btrfs_get_dev_zone_info_all_devices to load the zone
    info for all the devices. And, it places this function in open_ctree()
    after loading the trees.
    Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    73651042
volumes.c 206 KB