diff mbox

[v2] sparc64: sunvdc: Complete I/O request if vdisk server error

Message ID 547DEE91.4050903@oracle.com
State Changes Requested
Delegated to: David Miller
Headers show

Commit Message

chris hyser Dec. 2, 2014, 4:53 p.m. UTC
Hi Dave,

Sending it again. Thanks.

-chrish

-------- Forwarded Message --------
Subject: [PATCH v2] sparc64: sunvdc: Complete I/O request if vdisk server error
Date: Fri, 21 Nov 2014 16:06:30 -0500
From: chris hyser <chris.hyser@oracle.com>
To: sparclinux@vger.kernel.org

Sorry for the confusion of the prior message. Below was the intended commit message.

-chrish

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@oracle.com>




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

Comments

David Miller Dec. 12, 2014, 2:44 a.m. UTC | #1
From: chris hyser <chris.hyser@oracle.com>
Date: Tue, 02 Dec 2014 11:53:37 -0500

> Sending it again. Thanks.

Please do not resubmit patches like a forwarded email
as you are doing here.

Submit is like a fresh, new, patch posting.

Your patch also has a few problems:

> + printk(KERN_ERR PFX "virtual disk server I/O error %d\n",
> +				desc->status);

Please use "pr_err()"

Also, on function calls that span multiple lines, you must
indent the send and subsequent lines of that function call
exactly to the column after the openning parenthesis of that
function call.

You must use the appropriate number of space and TAB characters
necessary to do so.  If you are only using TAB characters, you
are doing it wrong. :)
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c
index 0ebadf9..17e9a50 100644
--- a/drivers/block/sunvdc.c
+++ b/drivers/block/sunvdc.c
@@ -279,7 +279,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 && desc->size == 0) {
+		printk(KERN_ERR PFX "virtual disk server I/O error %d\n",
+				desc->status);
+		__blk_end_request_all(req, -EIO);
+	} else
+		__blk_end_request(req, (desc->status ? -EIO : 0) , desc->size);

  	/* restart blk queue when ring is half emptied */
  	if (blk_queue_stopped(port->disk->queue) &&