summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiu Bo <bo.li.liu@oracle.com>2017-11-03 11:24:44 -0600
committerShaohua Li <shli@fb.com>2017-11-03 11:29:50 -0700
commit39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b (patch)
tree91ea4eb6e8b4cbe512ddade95f43651d3a873d34
parentb90f6ff080c52e2f05364210733df120e3c4e597 (diff)
downloadlinux-stable-39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b.tar.gz
linux-stable-39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b.tar.bz2
linux-stable-39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b.zip
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 <bo.li.liu@oracle.com> Acked-by: Guoqing Jiang <gqjiang@suse.com> Signed-off-by: Shaohua Li <shli@fb.com>
-rw-r--r--block/badblocks.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/badblocks.c b/block/badblocks.c
index 43c71166e1e2..91f7bcf979d3 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 */