[lustre-devel] [PATCH 15/22] lustre: o2iblnd: convert list_for_each_entry_safe() to while(!list_empty())

James Simmons jsimmons at infradead.org
Wed Aug 1 20:07:41 PDT 2018


> These loops are removing all element from a list.
> So using while(!list_empty()) makes the intent clearer.

Reviewed-by: James Simmons <jsimmons at infradead.org>
 
> Signed-off-by: NeilBrown <neilb at suse.com>
> ---
>  .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c    |   16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> index 124870ada28b..830a5bf34c16 100644
> --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> @@ -1283,11 +1283,13 @@ static void kiblnd_destroy_fmr_pool(struct kib_fmr_pool *fpo)
>  		if (fpo->fmr.fpo_fmr_pool)
>  			ib_destroy_fmr_pool(fpo->fmr.fpo_fmr_pool);
>  	} else {
> -		struct kib_fast_reg_descriptor *frd, *tmp;
> +		struct kib_fast_reg_descriptor *frd;
>  		int i = 0;
>  
> -		list_for_each_entry_safe(frd, tmp, &fpo->fast_reg.fpo_pool_list,
> -					 frd_list) {
> +		while (!list_empty(&fpo->fast_reg.fpo_pool_list)) {
> +			frd = list_first_entry(&fpo->fast_reg.fpo_pool_list,
> +					       struct kib_fast_reg_descriptor,
> +					       frd_list);
>  			list_del(&frd->frd_list);
>  			ib_dereg_mr(frd->frd_mr);
>  			kfree(frd);
> @@ -1362,7 +1364,7 @@ static int kiblnd_alloc_fmr_pool(struct kib_fmr_poolset *fps, struct kib_fmr_poo
>  
>  static int kiblnd_alloc_freg_pool(struct kib_fmr_poolset *fps, struct kib_fmr_pool *fpo)
>  {
> -	struct kib_fast_reg_descriptor *frd, *tmp;
> +	struct kib_fast_reg_descriptor *frd;
>  	int i, rc;
>  
>  	INIT_LIST_HEAD(&fpo->fast_reg.fpo_pool_list);
> @@ -1399,8 +1401,10 @@ static int kiblnd_alloc_freg_pool(struct kib_fmr_poolset *fps, struct kib_fmr_po
>  	kfree(frd);
>  
>  out:
> -	list_for_each_entry_safe(frd, tmp, &fpo->fast_reg.fpo_pool_list,
> -				 frd_list) {
> +	while (!list_empty(&fpo->fast_reg.fpo_pool_list)) {
> +		frd = list_first_entry(&fpo->fast_reg.fpo_pool_list,
> +				       struct kib_fast_reg_descriptor,
> +				       frd_list);
>  		list_del(&frd->frd_list);
>  		ib_dereg_mr(frd->frd_mr);
>  		kfree(frd);
> 
> 
> 


More information about the lustre-devel mailing list