Re: [PATCH] pnfs/blocklayout: put deviceid node after releasing bl_ext_lock

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

 



On Fri, Jun 10, 2016 at 04:37:35PM -0400, Benjamin Coddington wrote:
> The last put of deviceid nodes for SCSI layouts may sleep, so we shouldn't
> hold any spinlocks.  Make sure we put them outside the bl_ext_lock.
> 
> Signed-off-by: Benjamin Coddington <bcodding@xxxxxxxxxx>

Thanks Benjamin,

the patch looks fine:

Reviewed-by: Christoph Hellwig <hch@xxxxxx>

Although maybe it's worth addressing a few naming nitpicks:

> +static void __ext_put_deviceids(struct list_head *head)

No need for the __ here.

>  static int
> -__ext_tree_remove(struct rb_root *root, sector_t start, sector_t end)
> +__ext_tree_remove(struct rb_root *root,
> +		sector_t start, sector_t end, struct list_head *tmp)
>  {

Maybe instead of tmp this could be called to_free?

> +	LIST_HEAD(tmp);
>  
>  	spin_lock(&bl->bl_ext_lock);
> -	err = __ext_tree_remove(&bl->bl_ext_ro, start, end);
> +	err = __ext_tree_remove(&bl->bl_ext_ro, start, end, &tmp);
>  	if (rw) {
> -		err2 = __ext_tree_remove(&bl->bl_ext_rw, start, end);
> +		err2 = __ext_tree_remove(&bl->bl_ext_rw, start, end, &tmp);

Same here,

> @@ -396,12 +408,13 @@ ext_tree_mark_written(struct pnfs_block_layout *bl, sector_t start,
>  	sector_t end = start + len;
>  	struct pnfs_block_extent *be;
>  	int err = 0;
> +	LIST_HEAD(tmp);

and here.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux