Re: [PATCH 1/3] blk-mq: cleanup after blk_mq_init_rq_map failures

From: Christoph Hellwig
Date: Fri Jul 18 2014 - 05:45:29 EST


On Thu, Jul 17, 2014 at 02:39:09PM -0500, Robert Elliott wrote:
> In blk-mq.c blk_mq_alloc_tag_set, if:
> set->tags = kmalloc_node()
> succeeds, but one of the blk_mq_init_rq_map() calls fails,
> goto out_unwind;
> needs to free set->tags so the caller is not obligated
> to do so. None of the current callers (null_blk,
> virtio_blk, virtio_blk, or the forthcoming scsi-mq)
> do so.
>
> set->tags needs to be set to NULL after doing so,
> so other tag cleanup logic doesn't try to free
> a stale pointer later. Also set it to NULL
> in blk_mq_free_tag_set.
>
> Tested with error injection on the forthcoming
> scsi-mq + hpsa combination.
>
> Signed-off-by: Robert Elliott <elliott@xxxxxx>

Looks good,

Reviewed-by: Christoph Hellwig <hch@xxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/