diff options
| author | Christoph Hellwig <hch@lst.de> | 2022-11-15 10:39:44 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-12-02 17:41:12 +0100 |
| commit | c1e6d4bfdee32104048323b4668a4bb7f51492aa (patch) | |
| tree | b184e06ad54c7fa4116f20bde97e62bf0d4deaa5 | |
| parent | d88bf6be02defd763e919440d313df190851db72 (diff) | |
| download | linux-c1e6d4bfdee32104048323b4668a4bb7f51492aa.tar.gz linux-c1e6d4bfdee32104048323b4668a4bb7f51492aa.tar.bz2 linux-c1e6d4bfdee32104048323b4668a4bb7f51492aa.zip | |
btrfs: zoned: fix missing endianness conversion in sb_write_pointer
commit c51f0e6a1254b3ac2d308e1c6fd8fb936992b455 upstream.
generation is an on-disk __le64 value, so use btrfs_super_generation to
convert it to host endian before comparing it.
Fixes: 12659251ca5d ("btrfs: implement log-structured superblock for ZONED mode")
CC: stable@vger.kernel.org # 5.15+
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | fs/btrfs/zoned.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c index 96958ca474bd..073829be45d1 100644 --- a/fs/btrfs/zoned.c +++ b/fs/btrfs/zoned.c @@ -114,7 +114,8 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones, super[i] = page_address(page[i]); } - if (super[0]->generation > super[1]->generation) + if (btrfs_super_generation(super[0]) > + btrfs_super_generation(super[1])) sector = zones[1].start; else sector = zones[0].start; |
