[PATCH] udev: sleep_for_dev() bits

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.
This commit is contained in:
rml@tech9.net 2003-10-23 00:50:27 -07:00 committed by Greg KH
parent a34ea8f598
commit c332cfc72d
1 changed files with 6 additions and 8 deletions

View 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: