[XENBUS] Allow user of xenbus_read_driver_state() to distinguish

absence of state field in xenstore by returning XenbusStateUnknown
rather than XenbusStateClosed.
Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
kaf24@localhost.localdomain committed 2006-08-19 14:28:10 +01:00
1 parent 35f4fc005c
commit e7b9a93ed4
10 files changed
+11 -17

No files matched your search

@@ -343,7 +343,6 @@ static void backend_changed(struct xenbus_device *dev,
case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
case XenbusStateUnknown:
break;
case XenbusStateConnected:
@@ -354,10 +353,10 @@ static void backend_changed(struct xenbus_device *dev,
tpmif_set_connected_state(tp, 0);
break;
case XenbusStateUnknown:
case XenbusStateClosed:
if (tp->is_suspended == 0) {
if (tp->is_suspended == 0)
device_unregister(&dev->dev);
}
xenbus_switch_state(dev, XenbusStateClosed);
break;
}
@@ -331,12 +331,11 @@ static void frontend_changed(struct xenbus_device *dev,
xenbus_switch_state(dev, XenbusStateClosing);
break;
case XenbusStateUnknown:
case XenbusStateClosed:
device_unregister(&dev->dev);
break;
case XenbusStateUnknown:
case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
frontend_state);
@@ -256,10 +256,10 @@ static void backend_changed(struct xenbus_device *dev,
DPRINTK("blkfront:backend_changed.\n");
switch (backend_state) {
case XenbusStateUnknown:
case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
case XenbusStateUnknown:
case XenbusStateClosed:
break;
@@ -267,12 +267,11 @@ static void tap_frontend_changed(struct xenbus_device *dev,
xenbus_switch_state(dev, XenbusStateClosing);
break;
case XenbusStateUnknown:
case XenbusStateClosed:
device_unregister(&dev->dev);
break;
case XenbusStateUnknown:
case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
frontend_state);
@@ -260,14 +260,13 @@ static void frontend_changed(struct xenbus_device *dev,
xenbus_switch_state(dev, XenbusStateClosing);
break;
case XenbusStateUnknown:
case XenbusStateClosed:
if (be->netif != NULL)
kobject_uevent(&dev->dev.kobj, KOBJ_OFFLINE);
device_unregister(&dev->dev);
break;
case XenbusStateUnknown:
case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
frontend_state);
@@ -181,6 +181,7 @@ static void pciback_frontend_changed(struct xenbus_device *xdev,
xenbus_switch_state(xdev, XenbusStateClosing);
break;
case XenbusStateUnknown:
case XenbusStateClosed:
dev_dbg(&xdev->dev, "frontend is gone! unregister device\n");
device_unregister(&xdev->dev);
@@ -225,6 +225,7 @@ static void pcifront_backend_changed(struct xenbus_device *xdev,
pcifront_try_disconnect(pdev);
break;
case XenbusStateUnknown:
case XenbusStateClosed:
dev_warn(&xdev->dev, "backend went away!\n");
pcifront_try_disconnect(pdev);
@@ -34,7 +34,6 @@ struct backend_info
/* watch front end for changes */
struct xenbus_watch backend_watch;
enum xenbus_state frontend_state;
};
static void maybe_connect(struct backend_info *be);
@@ -143,8 +142,6 @@ static void frontend_changed(struct xenbus_device *dev,
struct backend_info *be = dev->dev.driver_data;
int err;
be->frontend_state = frontend_state;
switch (frontend_state) {
case XenbusStateInitialising:
case XenbusStateInitialised:
@@ -162,13 +159,12 @@ static void frontend_changed(struct xenbus_device *dev,
be->instance = -1;
break;
case XenbusStateUnknown:
case XenbusStateClosed:
device_unregister(&be->dev->dev);
tpmback_remove(dev);
break;
case XenbusStateUnknown:
case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL,
"saw state %d at frontend",
@@ -274,7 +274,7 @@ enum xenbus_state xenbus_read_driver_state(const char *path)
enum xenbus_state result;
int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
if (err)
result = XenbusStateClosed;
result = XenbusStateUnknown;
return result;
}
+1 -1
View File
@@ -274,7 +274,7 @@ int xenbus_free_evtchn(struct xenbus_device *dev, int port);
/**
* Return the state of the driver rooted at the given store path, or
* XenbusStateClosed if no state can be read.
* XenbusStateUnknown if no state can be read.
*/
enum xenbus_state xenbus_read_driver_state(const char *path);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.