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
9e0e252a04 ("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>
This commit is contained in:
Liu Bo 2017-11-03 11:24:44 -06:00 committed by Shaohua Li
parent b90f6ff080
commit 39b4954c0a
1 changed files with 1 additions and 1 deletions

View File

@ -178,7 +178,7 @@ int badblocks_set(struct badblocks *bb, sector_t s, int sectors,
if (bb->shift < 0) if (bb->shift < 0)
/* badblocks are disabled */ /* badblocks are disabled */
return 0; return 1;
if (bb->shift) { if (bb->shift) {
/* round the start down, and the end up */ /* round the start down, and the end up */