On Sat, Aug 12, 2023 at 01:05:06AM +0800, Coly Li wrote: > This is the v7 version of the badblocks improvement series, which makes > badblocks APIs to handle multiple ranges in bad block table. > > The change comparing to previous v6 version is the modifications > enlightened by the code review comments from Xiao Ni, > - Typo fixes in code comments and commit logs. > - Tiny but useful optimzation in prev_badblocks(), front_overwrite(), > _badblocks_clear(). > > There is NO in-memory or on-disk format change in the whole series, all > existing API and data structures are consistent. This series just only > improve the code algorithm to handle more corner cases, the interfaces > are same and consistency to all existing callers (md raid and nvdimm > drivers). > > The original motivation of the change is from the requirement from our > customer, that current badblocks routines don't handle multiple ranges. > For example if the bad block setting range covers multiple ranges from > bad block table, only the first two bad block ranges merged and rested > ranges are intact. The expected behavior should be all the covered > ranges to be handled. > > All the patches are tested by modified user space code and the code > logic works as expected. The modified user space testing code is > provided in the last patch, which is not listed in the cover letter. The > testing code is an example how the improved code is tested. > > The whole change is divided into 6 patches to make the code review more > clear and easier. If people prefer, I'd like to post a single large > patch finally after the code review accomplished. > > Please review the code and response. Thank you all in advance. > > Coly Li > > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > Cc: Geliang Tang <geliang.tang@xxxxxxxx> > Cc: Hannes Reinecke <hare@xxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx> > Cc: NeilBrown <neilb@xxxxxxx> > Cc: Richard Fan <richard.fan@xxxxxxxx> > Cc: Vishal L Verma <vishal.l.verma@xxxxxxxxx> > Cc: Wols Lists <antlists@xxxxxxxxxxxxxxx> > Cc: Xiao Ni <xni@xxxxxxxxxx> This series LGTM, thanks Coly. Acked-by: Geliang Tang <geliang.tang@xxxxxxxx> > --- > > Coly Li (6): > badblocks: add more helper structure and routines in badblocks.h > badblocks: add helper routines for badblock ranges handling > badblocks: improve badblocks_set() for multiple ranges handling > badblocks: improve badblocks_clear() for multiple ranges handling > badblocks: improve badblocks_check() for multiple ranges handling > badblocks: switch to the improved badblock handling code > > block/badblocks.c | 1618 ++++++++++++++++++++++++++++++------- > include/linux/badblocks.h | 30 + > 2 files changed, 1354 insertions(+), 294 deletions(-) > > -- > 2.35.3 >