|
@@ -638,8 +638,7 @@ int register_xenbus_watch(struct xenbus_watch *watch)
|
|
|
|
|
|
|
|
err = xs_watch(watch->node, token);
|
|
err = xs_watch(watch->node, token);
|
|
|
|
|
|
|
|
- /* Ignore errors due to multiple registration. */
|
|
|
|
|
- if ((err != 0) && (err != -EEXIST)) {
|
|
|
|
|
|
|
+ if (err) {
|
|
|
spin_lock(&watches_lock);
|
|
spin_lock(&watches_lock);
|
|
|
list_del(&watch->list);
|
|
list_del(&watch->list);
|
|
|
spin_unlock(&watches_lock);
|
|
spin_unlock(&watches_lock);
|