sparc64: sunvdc: Complete I/O request if vdisk server error If virtual disk server returns an I/O with an error and 0 data transferred, complete the I/O with EIO to ensure initiating process does not hang indefinitely. Signed-off-by: Chris Hyser <chris.hyser@xxxxxxxxxx> diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c index 4b911ed..cfca5bf 100644 --- a/drivers/block/sunvdc.c +++ b/drivers/block/sunvdc.c @@ -308,7 +308,12 @@ static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr, rqe->req = NULL; - __blk_end_request(req, (desc->status ? -EIO : 0), desc->size); + if (desc->status) { + if (printk_ratelimit()) + pr_err(PFX "VIO I/O Error %d\n", desc->status); + __blk_end_request_all(req, -EIO); + } else + __blk_end_request(req, 0, desc->size); vdc_blk_queue_start(port); } -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html