From: Zheng Qixing <zhengqixing@xxxxxxxxxx>
Hi,
during RAID feature implementation testing, we found several bugs
in badblocks.
This series contains bugfixes and cleanups for MD RAID badblocks
handling code.
V2:
- patch 4: add a description of the issue
- patch 5: add comment of parital setting
- patch 6: add fix tag
- patch 10: two code style modifications
- patch 11: keep original functionality of rdev_clear_badblocks(),
functionality was incorrectly modified in V1.
- patch 1-10 and patch 12 are reviewed by Yu Kuai
<yukuai3@xxxxxxxxxx>
- patch 1, 3, 5, 6, 8, 9, 10, 12 are acked by Coly Li
<colyli@xxxxxxxxxx>
Li Nan (8):
badblocks: Fix error shitf ops
badblocks: factor out a helper try_adjacent_combine
badblocks: attempt to merge adjacent badblocks during
ack_all_badblocks
badblocks: return error directly when setting badblocks exceeds 512
badblocks: return error if any badblock set fails
badblocks: fix the using of MAX_BADBLOCKS
badblocks: try can_merge_front before overlap_front
badblocks: fix merge issue when new badblocks align with pre+1
Zheng Qixing (4):
badblocks: fix missing bad blocks on retry in _badblocks_check()
badblocks: return boolean from badblocks_set() and badblocks_clear()
md: improve return types of badblocks handling functions
badblocks: use sector_t instead of int to avoid truncation of
badblocks length
block/badblocks.c | 322 +++++++++++++---------------------
drivers/block/null_blk/main.c | 16 +-
drivers/md/md.c | 48 ++---
drivers/md/md.h | 14 +-
drivers/md/raid1-10.c | 2 +-
drivers/md/raid1.c | 10 +-
drivers/md/raid10.c | 14 +-
drivers/nvdimm/badrange.c | 2 +-
drivers/nvdimm/nd.h | 2 +-
drivers/nvdimm/pfn_devs.c | 7 +-
drivers/nvdimm/pmem.c | 2 +-
include/linux/badblocks.h | 10 +-
12 files changed, 183 insertions(+), 266 deletions(-)