- return bus_match_run(bus, node->next, ret, m);
+ /* Run the callback. And then invoke siblings. */
+ if (node->leaf.callback) {
+ r = node->leaf.callback(bus, m, node->leaf.userdata);
+ if (r != 0)
+ return r;
+ }
+
+ return bus_match_run(bus, node->next, m);