]> git.hungrycats.org Git - linux/commitdiff
md: fix super_offset endianness in super_1_rdev_size_change
authorJason Yan <yanaijie@huawei.com>
Fri, 10 Mar 2017 03:27:23 +0000 (11:27 +0800)
committerSasha Levin <alexander.levin@verizon.com>
Mon, 31 Jul 2017 17:37:53 +0000 (13:37 -0400)
[ Upstream commit 3fb632e40d7667d8bedfabc28850ac06d5493f54 ]

The sb->super_offset should be big-endian, but the rdev->sb_start is in
host byte order, so fix this by adding cpu_to_le64.

Signed-off-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
drivers/md/md.c

index 7453c3ed4b8fdc11f27d4a1c3b3c185f553ea579..1fdcd573541835c9e258eb51f036d7fd79129b79 100644 (file)
@@ -1852,7 +1852,7 @@ super_1_rdev_size_change(struct md_rdev *rdev, sector_t num_sectors)
        }
        sb = page_address(rdev->sb_page);
        sb->data_size = cpu_to_le64(num_sectors);
-       sb->super_offset = rdev->sb_start;
+       sb->super_offset = cpu_to_le64(rdev->sb_start);
        sb->sb_csum = calc_sb_1_csum(sb);
        md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
                       rdev->sb_page);