Lines Matching defs:watch
90 * alone during a watch callback.
213 struct xenbus_watch watch;
218 static void free_watch_adapter(struct watch_adapter *watch)
220 kfree(watch->watch.node);
221 kfree(watch->token);
222 kfree(watch);
228 struct watch_adapter *watch;
230 watch = kzalloc(sizeof(*watch), GFP_KERNEL);
231 if (watch == NULL)
234 watch->watch.node = kstrdup(path, GFP_KERNEL);
235 if (watch->watch.node == NULL)
238 watch->token = kstrdup(token, GFP_KERNEL);
239 if (watch->token == NULL)
242 return watch;
245 free_watch_adapter(watch);
251 static void watch_fired(struct xenbus_watch *watch,
262 adap = container_of(watch, struct watch_adapter, watch);
353 struct watch_adapter *watch, *tmp_watch;
367 watch = alloc_watch_adapter(path, token);
368 if (watch == NULL) {
373 watch->watch.callback = watch_fired;
374 watch->dev_data = u;
376 err = register_xenbus_watch(&watch->watch);
378 free_watch_adapter(watch);
382 list_add(&watch->list, &u->watches);
384 list_for_each_entry_safe(watch, tmp_watch, &u->watches, list) {
385 if (!strcmp(watch->token, token) &&
386 !strcmp(watch->watch.node, path)) {
387 unregister_xenbus_watch(&watch->watch);
388 list_del(&watch->list);
389 free_watch_adapter(watch);
557 struct watch_adapter *watch, *tmp_watch;
570 list_for_each_entry_safe(watch, tmp_watch, &u->watches, list) {
571 unregister_xenbus_watch(&watch->watch);
572 list_del(&watch->list);
573 free_watch_adapter(watch);