On 13/10/2020 17:58, David Sterba wrote: > On Fri, Oct 02, 2020 at 03:36:11AM +0900, Naohiro Aota wrote: >> --- a/fs/btrfs/ctree.h >> +++ b/fs/btrfs/ctree.h >> @@ -588,6 +588,9 @@ struct btrfs_fs_info { >> struct btrfs_root *free_space_root; >> struct btrfs_root *data_reloc_root; >> >> + /* Zone size when in ZONED mode */ >> + u64 zone_size; > > I think this could be reused to avoid the lengthy > > if (btrfs_fs_incompat(fs_info, ZONED)) > > to do > > if (fs_info->zoned) > > In order to keep the semantics of both an anonymouns union should work: > > union { > u64 zone_size; > u64 zone; > }; > > and the existing usage of zone_size can be kept intact. > I've opted for a bool zoned in fs_info and a btrfs_is_zoned(fs_info) inline function, which we can get rid of again if you just want fs_info->zoned.