Lines Matching defs:watch
97 * alone during a watch callback.
228 struct xenbus_watch watch;
233 static void free_watch_adapter(struct watch_adapter *watch)
235 kfree(watch->watch.node);
236 kfree(watch->token);
237 kfree(watch);
243 struct watch_adapter *watch;
245 watch = kzalloc(sizeof(*watch), GFP_KERNEL);
246 if (watch == NULL)
249 watch->watch.node = kstrdup(path, GFP_KERNEL);
250 if (watch->watch.node == NULL)
253 watch->token = kstrdup(token, GFP_KERNEL);
254 if (watch->token == NULL)
257 return watch;
260 free_watch_adapter(watch);
266 static void watch_fired(struct xenbus_watch *watch,
277 adap = container_of(watch, struct watch_adapter, watch);
310 struct watch_adapter *watch, *tmp_watch;
326 list_for_each_entry_safe(watch, tmp_watch, &u->watches, list) {
327 unregister_xenbus_watch(&watch->watch);
328 list_del(&watch->list);
329 free_watch_adapter(watch);
498 struct watch_adapter *watch;
515 watch = alloc_watch_adapter(path, token);
516 if (watch == NULL) {
521 watch->watch.callback = watch_fired;
522 watch->dev_data = u;
524 err = register_xenbus_watch(&watch->watch);
526 free_watch_adapter(watch);
530 list_add(&watch->list, &u->watches);
532 list_for_each_entry(watch, &u->watches, list) {
533 if (!strcmp(watch->token, token) &&
534 !strcmp(watch->watch.node, path)) {
535 unregister_xenbus_watch(&watch->watch);
536 list_del(&watch->list);
537 free_watch_adapter(watch);