X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=drivers%2Fblock%2Frsxx%2Fdev.c;h=63b9d2ffa8ee406628da48d60c841b6a8a65bb98;hb=4246a0b63bd8;hp=ac8c62cb48751bd06e6cb27e44e8fc9c379c7182;hpb=ac88ee3b6cbac80c32556a39fe16c4bbc55fcbc5;p=cascardo%2Flinux.git diff --git a/drivers/block/rsxx/dev.c b/drivers/block/rsxx/dev.c index ac8c62cb4875..63b9d2ffa8ee 100644 --- a/drivers/block/rsxx/dev.c +++ b/drivers/block/rsxx/dev.c @@ -137,7 +137,10 @@ static void bio_dma_done_cb(struct rsxx_cardinfo *card, if (!card->eeh_state && card->gendisk) disk_stats_complete(card, meta->bio, meta->start_time); - bio_endio(meta->bio, atomic_read(&meta->error) ? -EIO : 0); + if (atomic_read(&meta->error)) + bio_io_error(meta->bio); + else + bio_endio(meta->bio); kmem_cache_free(bio_meta_pool, meta); } } @@ -199,7 +202,9 @@ static void rsxx_make_request(struct request_queue *q, struct bio *bio) queue_err: kmem_cache_free(bio_meta_pool, bio_meta); req_err: - bio_endio(bio, st); + if (st) + bio->bi_error = st; + bio_endio(bio); } /*----------------- Device Setup -------------------*/