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