chiark / gitweb /
make WAIT_FOR_SYSFS usable in non "wait-only" rules
[elogind.git] / udev_rules.c
index 8e9c160..e9b32df 100644 (file)
@@ -733,19 +733,13 @@ static int match_rule(struct udevice *udev, struct udev_rule *rule)
        }
 
        if (rule->wait_for_sysfs.operation != KEY_OP_UNSET) {
-               int match;
+               int found;
 
-               match = (wait_for_sysfs(udev, key_val(rule, &rule->wait_for_sysfs), 3) == 0);
-               if (match && (rule->wait_for_sysfs.operation != KEY_OP_NOMATCH)) {
-                       dbg("WAIT_FOR_SYSFS is true (matching value)");
-                       return 0;
-               }
-               if (!match && (rule->wait_for_sysfs.operation == KEY_OP_NOMATCH)) {
-                       dbg("WAIT_FOR_SYSFS is true, (non matching value)");
-                       return 0;
+               found = (wait_for_sysfs(udev, key_val(rule, &rule->wait_for_sysfs), 3) == 0);
+               if (!found && (rule->wait_for_sysfs.operation != KEY_OP_NOMATCH)) {
+                       dbg("WAIT_FOR_SYSFS failed");
+                       goto nomatch;
                }
-               dbg("WAIT_FOR_SYSFS is false");
-               return -1;
        }
 
        /* walk up the chain of parent devices and find a match */