Re: [Xen-devel] [PATCH] xen/xen-scsiback: Need go to fail after xenbus_dev_error()

From: Juergen Gross
Date: Mon Sep 29 2014 - 05:35:12 EST


On 09/29/2014 11:31 AM, Chen Gang wrote:
On 9/29/14 16:41, Jan Beulich wrote:
On 29.09.14 at 06:32, <JGross@xxxxxxxx> wrote:
On 09/26/2014 06:38 PM, Chen Gang wrote:
When failure occurs, after xenbus_dev_error(), need go to fail to let
upper caller know about it.

Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
---
drivers/xen/xen-scsiback.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
index 847bc9c..3e430e1 100644
--- a/drivers/xen/xen-scsiback.c
+++ b/drivers/xen/xen-scsiback.c
@@ -1222,8 +1222,10 @@ static int scsiback_probe(struct xenbus_device *dev,

err = xenbus_printf(XBT_NIL, dev->nodename, "feature-sg-grant", "%u",
SG_ALL);
- if (err)
+ if (err) {
xenbus_dev_error(dev, err, "writing feature-sg-grant");
+ goto fail;
+ }

xenbus_switch_state(dev, XenbusStateInitWait);
return 0;


Hmm, not testing for failure was on purpose. Advertising this feature
is just for tuning purposes, not mandatory.

OTOH it would really be a strange error if this xenbus_printf() fails
but all other operations are working, and signaling an error at the
time when it first shows up is a good thing. So:

I disagree - failure to announce optional features should not lead to
general failure. And this should be consistent across drivers; for
existing examples see xen_blkbk_flush_diskcache() and
xen_blkbk_discard().


During scsiback_probe(), can we sure that "feature-sg-grant" is optional
feature? For me, only according to its name, I guess not: it is about
security which is always necessary in kernel (although SG_ALL).

It is optional. Otherwise the interface would be broken, as I've added
this feature recently and "old" clients (pre 3.18) don't know about it.

The feature is NOT about security, but about capability to support
larger SCSI requests than the old interface did.


Juergen

--
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/