Re: [PATCH v7 0/6] badblocks improvement for multiple bad block ranges

Geliang Tang
2023-09-26T01:46:35Z

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@intel.com>
> Cc: Geliang Tang <geliang.tang@suse.com>
> Cc: Hannes Reinecke <hare@suse.de>
> Cc: Jens Axboe <axboe@kernel.dk>
> Cc: NeilBrown <neilb@suse.de>
> Cc: Richard Fan <richard.fan@suse.com>
> Cc: Vishal L Verma <vishal.l.verma@intel.com>
> Cc: Wols Lists <antlists@youngman.org.uk>
> Cc: Xiao Ni <xni@redhat.com>

This series LGTM, thanks Coly.

Acked-by: Geliang Tang <geliang.tang@suse.com>

> ---
>
> 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
>