]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
md: add a missing endianness conversion in check_sb_changes
authorChristoph Hellwig <hch@lst.de>
Thu, 4 Apr 2019 16:56:10 +0000 (18:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 25 May 2019 16:22:02 +0000 (18:22 +0200)
commit ed4d0a4ea11e19863952ac6a7cea3bbb27ccd452 upstream.

The on-disk value is little endian and we need to convert it to
native endian before storing the value in the in-core structure.

Fixes: 7564beda19b36 ("md-cluster/raid10: support add disk under grow mode")
Cc: <stable@vger.kernel.org> # 4.20+
Acked-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/md.c

index 6a98e882382cdb15b1e2b3a2e99e5d57571582e3..295ff09cff4c7be24aa31f5c5f78f480bd40a125 100644 (file)
@@ -9229,7 +9229,7 @@ static void check_sb_changes(struct mddev *mddev, struct md_rdev *rdev)
                 * reshape is happening in the remote node, we need to
                 * update reshape_position and call start_reshape.
                 */
-               mddev->reshape_position = sb->reshape_position;
+               mddev->reshape_position = le64_to_cpu(sb->reshape_position);
                if (mddev->pers->update_reshape_pos)
                        mddev->pers->update_reshape_pos(mddev);
                if (mddev->pers->start_reshape)