Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb0acb37 authored by Liu Bo's avatar Liu Bo Committed by Greg Kroah-Hartman
Browse files

badblocks: fix wrong return value in badblocks_set if badblocks are disabled




[ Upstream commit 39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b ]

MD's rdev_set_badblocks() expects that badblocks_set() returns 1 if
badblocks are disabled, otherwise, rdev_set_badblocks() will record
superblock changes and return success in that case and md will fail to
report an IO error which it should.

This bug has existed since badblocks were introduced in commit
9e0e252a ("badblocks: Add core badblock management code").

Signed-off-by: default avatarLiu Bo <bo.li.liu@oracle.com>
Acked-by: default avatarGuoqing Jiang <gqjiang@suse.com>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent dcdca123
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -178,7 +178,7 @@ int badblocks_set(struct badblocks *bb, sector_t s, int sectors,

	if (bb->shift < 0)
		/* badblocks are disabled */
		return 0;
		return 1;

	if (bb->shift) {
		/* round the start down, and the end up */