chiark / gitweb /
[PATCH] udev: sleep_for_dev() bits
authorrml@tech9.net <rml@tech9.net>
Thu, 23 Oct 2003 07:50:27 +0000 (00:50 -0700)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:06:22 +0000 (21:06 -0700)
OK, I fixed that bug you hinted at earlier in my previous
sleep_for_dev() patch.  I am sure you fixed it, but here we go
nonetheless, just in case.

I actually changed it up a bit.  It is probably faster to count down
from SECONDS_TO_WAIT_FOR_DEV than count up.

I also made the lone 'path' argument const, since it can be.

Some other misc. bits, too.

udev-add.c

index 7a89076add32891c287d878a738d2c62803ab1e3..d237834c68b658a103b8c10992948b039899b2b0 100644 (file)
@@ -139,26 +139,24 @@ exit:
 static int sleep_for_dev(char *path)
 {
        char filename[SYSFS_PATH_MAX + 6];
-       struct stat buf;
-       int loop = 0;
-       int retval = -ENODEV;
+       int loop = SECONDS_TO_WAIT_FOR_DEV;
+       int retval;
 
        strcpy(filename, sysfs_path);
        strcat(filename, path);
        strcat(filename, "/dev");
 
-       while (loop < SECONDS_TO_WAIT_FOR_DEV) {
+       while (loop--) {
+               struct stat buf;
+
                dbg("looking for %s", filename);
                retval = stat(filename, &buf);
-               if (retval == 0) {
-                       retval = 0;
+               if (!retval)
                        goto exit;
-               }
 
                /* sleep for a second or two to give the kernel a chance to
                 * create the dev file */
                sleep(1);
-               ++loop;
        }
        retval = -ENODEV;
 exit: