|
@@ -1012,6 +1012,7 @@ static void scsiback_do_add_lun(struct vscsibk_info *info, const char *state,
|
|
{
|
|
{
|
|
struct v2p_entry *entry;
|
|
struct v2p_entry *entry;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
+ int err;
|
|
|
|
|
|
if (try) {
|
|
if (try) {
|
|
spin_lock_irqsave(&info->v2p_lock, flags);
|
|
spin_lock_irqsave(&info->v2p_lock, flags);
|
|
@@ -1027,8 +1028,11 @@ static void scsiback_do_add_lun(struct vscsibk_info *info, const char *state,
|
|
scsiback_del_translation_entry(info, vir);
|
|
scsiback_del_translation_entry(info, vir);
|
|
}
|
|
}
|
|
} else if (!try) {
|
|
} else if (!try) {
|
|
- xenbus_printf(XBT_NIL, info->dev->nodename, state,
|
|
|
|
|
|
+ err = xenbus_printf(XBT_NIL, info->dev->nodename, state,
|
|
"%d", XenbusStateClosed);
|
|
"%d", XenbusStateClosed);
|
|
|
|
+ if (err)
|
|
|
|
+ xenbus_dev_error(info->dev, err,
|
|
|
|
+ "%s: writing %s", __func__, state);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1067,8 +1071,11 @@ static void scsiback_do_1lun_hotplug(struct vscsibk_info *info, int op,
|
|
snprintf(str, sizeof(str), "vscsi-devs/%s/p-dev", ent);
|
|
snprintf(str, sizeof(str), "vscsi-devs/%s/p-dev", ent);
|
|
val = xenbus_read(XBT_NIL, dev->nodename, str, NULL);
|
|
val = xenbus_read(XBT_NIL, dev->nodename, str, NULL);
|
|
if (IS_ERR(val)) {
|
|
if (IS_ERR(val)) {
|
|
- xenbus_printf(XBT_NIL, dev->nodename, state,
|
|
|
|
|
|
+ err = xenbus_printf(XBT_NIL, dev->nodename, state,
|
|
"%d", XenbusStateClosed);
|
|
"%d", XenbusStateClosed);
|
|
|
|
+ if (err)
|
|
|
|
+ xenbus_dev_error(info->dev, err,
|
|
|
|
+ "%s: writing %s", __func__, state);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
strlcpy(phy, val, VSCSI_NAMELEN);
|
|
strlcpy(phy, val, VSCSI_NAMELEN);
|
|
@@ -1079,8 +1086,11 @@ static void scsiback_do_1lun_hotplug(struct vscsibk_info *info, int op,
|
|
err = xenbus_scanf(XBT_NIL, dev->nodename, str, "%u:%u:%u:%u",
|
|
err = xenbus_scanf(XBT_NIL, dev->nodename, str, "%u:%u:%u:%u",
|
|
&vir.hst, &vir.chn, &vir.tgt, &vir.lun);
|
|
&vir.hst, &vir.chn, &vir.tgt, &vir.lun);
|
|
if (XENBUS_EXIST_ERR(err)) {
|
|
if (XENBUS_EXIST_ERR(err)) {
|
|
- xenbus_printf(XBT_NIL, dev->nodename, state,
|
|
|
|
|
|
+ err = xenbus_printf(XBT_NIL, dev->nodename, state,
|
|
"%d", XenbusStateClosed);
|
|
"%d", XenbusStateClosed);
|
|
|
|
+ if (err)
|
|
|
|
+ xenbus_dev_error(info->dev, err,
|
|
|
|
+ "%s: writing %s", __func__, state);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|