From: Liu Bo Date: Fri, 3 Nov 2017 17:24:44 +0000 (-0600) Subject: badblocks: fix wrong return value in badblocks_set if badblocks are disabled X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b;p=linux.git badblocks: fix wrong return value in badblocks_set if badblocks are disabled 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 9e0e252a048b ("badblocks: Add core badblock management code"). Signed-off-by: Liu Bo Acked-by: Guoqing Jiang Signed-off-by: Shaohua Li --- diff --git a/block/badblocks.c b/block/badblocks.c index 43c71166e1e2a..91f7bcf979d37 100644 --- a/block/badblocks.c +++ b/block/badblocks.c @@ -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 */