summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2022-11-15 10:39:44 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-12-02 17:41:12 +0100
commitc1e6d4bfdee32104048323b4668a4bb7f51492aa (patch)
treeb184e06ad54c7fa4116f20bde97e62bf0d4deaa5
parentd88bf6be02defd763e919440d313df190851db72 (diff)
downloadlinux-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.c3
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;