From 4e2b290821d083361260f8cdbe7c54886463673e Mon Sep 17 00:00:00 2001 From: Pozsar Balazs Date: Fri, 23 Mar 2007 17:21:46 +0100 Subject: [PATCH] udevsettle: read udev not kernel seqnum first --- udevsettle.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/udevsettle.c b/udevsettle.c index 9e3e03b1af0..f76ad7160d6 100644 --- a/udevsettle.c +++ b/udevsettle.c @@ -110,20 +110,6 @@ int main(int argc, char *argv[], char *envp[]) goto exit; } - /* read current kernel seqnum */ - strlcpy(filename, sysfs_path, sizeof(filename)); - strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename)); - fd = open(filename, O_RDONLY); - if (fd < 0) - goto exit; - len = read(fd, seqnum, sizeof(seqnum)-1); - close(fd); - if (len <= 0) - goto exit; - seqnum[len] = '\0'; - seq_kernel = strtoull(seqnum, NULL, 10); - info("kernel seqnum = %llu", seq_kernel); - /* read current udev seqnum */ strlcpy(filename, udev_root, sizeof(filename)); strlcat(filename, "/" EVENT_SEQNUM, sizeof(filename)); @@ -138,6 +124,20 @@ int main(int argc, char *argv[], char *envp[]) seq_udev = strtoull(seqnum, NULL, 10); info("udev seqnum = %llu", seq_udev); + /* read current kernel seqnum */ + strlcpy(filename, sysfs_path, sizeof(filename)); + strlcat(filename, "/kernel/uevent_seqnum", sizeof(filename)); + fd = open(filename, O_RDONLY); + if (fd < 0) + goto exit; + len = read(fd, seqnum, sizeof(seqnum)-1); + close(fd); + if (len <= 0) + goto exit; + seqnum[len] = '\0'; + seq_kernel = strtoull(seqnum, NULL, 10); + info("kernel seqnum = %llu", seq_kernel); + /* make sure all kernel events have arrived in the queue */ if (seq_udev >= seq_kernel) { info("queue is empty and no pending events left");