Re: [PATCH RESEND v2 4/5] sbitmap: add sbitmap_find_bit to remove repeat code in __sbitmap_get/__sbitmap_get_shallow

From: Jan Kara
Date: Thu Dec 22 2022 - 07:42:35 EST


On Thu 22-12-22 22:33:52, Kemeng Shi wrote:
> There are three differences between __sbitmap_get and
> __sbitmap_get_shallow when searching free bit:
> 1. __sbitmap_get_shallow limit number of bit to search per word.
> __sbitmap_get has no such limit.
> 2. __sbitmap_get_shallow always searches with wrap set. __sbitmap_get set
> wrap according to round_robin.
> 3. __sbitmap_get_shallow always searches from first bit in first word.
> __sbitmap_get searches from first bit when round_robin is not set
> otherwise searches from SB_NR_TO_BIT(sb, alloc_hint).
>
> Add helper function sbitmap_find_bit function to do common search while
> accept "limit depth per word", "wrap flag" and "first bit to
> search" from caller to support the need of both __sbitmap_get and
> __sbitmap_get_shallow.
>
> Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx>

One style nit below, otherwise feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>


> @@ -215,11 +211,32 @@ static int __sbitmap_get(struct sbitmap *sb, unsigned int alloc_hint)
> alloc_hint = 0;
> if (++index >= sb->map_nr)
> index = 0;
> +
> }

Pointless empty line here...

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR