On 9/29/14 16:41, Jan Beulich wrote:
On 09/26/2014 06:38 PM, Chen Gang wrote:On 29.09.14 at 06:32, <JGross@xxxxxxxx> 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).