be->shutdown_signalled = 0;
xenbus_switch_state(dev, XenbusStateInitWait);
+
+ err = xenbus_write(XBT_NIL, be->nodename, "start-tapdisk", "");
+ if (err)
+ xenbus_dev_fatal(be->dev, err, "restarting tapdisk");
}
static void tap_update_blkif_status(blkif_t *blkif)
err = xenbus_switch_state(dev, XenbusStateInitWait);
if (err)
goto fail;
+
+ err = xenbus_write(XBT_NIL, dev->nodename, "start-tapdisk", "");
+ if (err)
+ goto fail;
+
return 0;
fail:
return;
}
+ if (dev->state != XenbusStateInitWait) {
+ WPRINTK("%s: tapdisk ready, but blktap at %s\n",
+ __func__, xenbus_strstate(dev->state));
+ return;
+ }
+
err = xenbus_gather(XBT_NIL, dev->nodename, "sectors", "%llu",
&be->blkif->sectors, NULL);
if (err) {