Re: [patch] raid5_end_write_request spinlock fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday April 21, [email protected] wrote:
> Hello,
> 
> Reduce the raid5_end_write_request() spinlock window.

Thank you for reviewing the md code and suggesting improvements.
However it would help if you used a few more words to describe your
patches.  E.g. explain why  you are convinced that it is safe to
reduce the range of the lock like this.

NeilBrown

> 
> Signed-off-by: Coywolf Qi Hunt <[email protected]>
> ---
> 
> diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
> index 3184360..9c24377 100644
> --- a/drivers/md/raid5.c
> +++ b/drivers/md/raid5.c
> @@ -581,7 +581,6 @@ static int raid5_end_write_request (stru
>   	struct stripe_head *sh = bi->bi_private;
>  	raid5_conf_t *conf = sh->raid_conf;
>  	int disks = sh->disks, i;
> -	unsigned long flags;
>  	int uptodate = test_bit(BIO_UPTODATE, &bi->bi_flags);
>  
>  	if (bi->bi_size)
> @@ -599,16 +598,14 @@ static int raid5_end_write_request (stru
>  		return 0;
>  	}
>  
> -	spin_lock_irqsave(&conf->device_lock, flags);
>  	if (!uptodate)
>  		md_error(conf->mddev, conf->disks[i].rdev);
>  
>  	rdev_dec_pending(conf->disks[i].rdev, conf->mddev);
> -	
>  	clear_bit(R5_LOCKED, &sh->dev[i].flags);
>  	set_bit(STRIPE_HANDLE, &sh->state);
> -	__release_stripe(conf, sh);
> -	spin_unlock_irqrestore(&conf->device_lock, flags);
> +	release_stripe(sh);
> +
>  	return 0;
>  }
>  
> 
> -- 
> Coywolf Qi Hunt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux