Re: [RFC PATCH v1 1/6] badblocks: add more helper structure and routines in badblocks.h
From: Hannes Reinecke <hare@suse.de>
Date: 2021-03-03 13:33:59
Also in:
linux-raid, lkml, nvdimm
On 3/2/21 5:02 AM, Coly Li wrote:
quoted hunk ↗ jump to hunk
This patch adds the following helper structure and routines into badblocks.h, - struct bad_context This structure is used in improved badblocks code for bad table iteration. - BB_END() The macro to culculate end LBA of a bad range record from bad table. - badblocks_full() and badblocks_empty() The inline routines to check whether bad table is full or empty. - set_changed() and clear_changed() The inline routines to set and clear 'changed' tag from struct badblocks. These new helper structure and routines can help to make the code more clear, they will be used in the improved badblocks code in following patches. Signed-off-by: Coly Li <redacted> --- include/linux/badblocks.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)diff --git a/include/linux/badblocks.h b/include/linux/badblocks.h index 2426276b9bd3..166161842d1f 100644 --- a/include/linux/badblocks.h +++ b/include/linux/badblocks.h@@ -15,6 +15,7 @@ #define BB_OFFSET(x) (((x) & BB_OFFSET_MASK) >> 9) #define BB_LEN(x) (((x) & BB_LEN_MASK) + 1) #define BB_ACK(x) (!!((x) & BB_ACK_MASK)) +#define BB_END(x) (BB_OFFSET(x) + BB_LEN(x)) #define BB_MAKE(a, l, ack) (((a)<<9) | ((l)-1) | ((u64)(!!(ack)) << 63)) /* Bad block numbers are stored sorted in a single page.@@ -41,6 +42,14 @@ struct badblocks { sector_t size; /* in sectors */ }; +struct bad_context { + sector_t start; + sector_t len; + int ack; + sector_t orig_start; + sector_t orig_len; +}; +
Maybe rename it to 'badblocks_context'. It's not the context which is bad ... Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), GF: Felix Imendörffer