On Thu, Nov 08, 2012 at 07:58:59PM +0000, Nicholas A. Bellinger wrote:
> From: Nicholas Bellinger <[email protected]>
> 
> This patch fixes a double completion bug where ibr->pending = 2 usage
> plus the extra callback to iblock_complete_cmd() invoked after bio
> submission in iblock_execute_rw() can interfere with the normal
> bio->bi_done() -> iblock_bio_done() -> iblock_complete_cmd() completion
> path, causing a double target_complete_cmd() call to occur.

How so exactly?  Please provide an explanation, and preferably a test
case.

> Also drop the bio_cnt >= IBLOCK_MAX_BIO_PER_TASK rolling call to
> iblock_submit_bios() to avoid the exception case where outstanding
> bios completing via iblock_bio_done() are not accounted for when
> returning returning non zero from iblock_execute_rw().

This will cause deadlocks when we can't allocate enough bios for
a too large request.

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to