chiark / gitweb /
udev: initialize rules dir timestamps when reading rules
authorKay Sievers <kay@vrfy.org>
Wed, 8 Aug 2012 12:45:16 +0000 (14:45 +0200)
committerKay Sievers <kay@vrfy.org>
Wed, 8 Aug 2012 12:45:16 +0000 (14:45 +0200)
On Wed, Aug 8, 2012 at 11:48 AM, Michael Schroeder <mls@suse.de> wrote:
> if rules are installed in the first 3 seconds after the udev start,
> the stamps will all be zero, so the [first] call to check_rules_timestamp()
> will just copy the current mtime [and not cause a rules re-load].

src/udev/udev-rules.c

index d3b33e4..1860455 100644 (file)
@@ -1770,12 +1770,15 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
                 return NULL;
         }
         strv_uniq(rules->dirs);
+
+        rules->dirs_ts_usec = calloc(strv_length(rules->dirs), sizeof(long long));
+        udev_rules_check_timestamp(rules);
+
         r = conf_files_list_strv(&files, ".rules", (const char **)rules->dirs);
         if (r < 0) {
                 log_error("failed to enumerate rules files: %s\n", strerror(-r));
                 return NULL;
         }
-        rules->dirs_ts_usec = calloc(strv_length(rules->dirs), sizeof(long long));
 
         /*
          * The offset value in the rules strct is limited; add all