Skip to content

Commit c51f0e6

Browse files
Christoph Hellwigkdave
authored andcommitted
btrfs: zoned: fix missing endianness conversion in sb_write_pointer
generation is an on-disk __le64 value, so use btrfs_super_generation to convert it to host endian before comparing it. Fixes: 1265925 ("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>
1 parent 013c1c5 commit c51f0e6

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

fs/btrfs/zoned.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
134134
super[i] = page_address(page[i]);
135135
}
136136

137-
if (super[0]->generation > super[1]->generation)
137+
if (btrfs_super_generation(super[0]) >
138+
btrfs_super_generation(super[1]))
138139
sector = zones[1].start;
139140
else
140141
sector = zones[0].start;

0 commit comments

Comments
 (0)