return data_disks;
}
-
int devnm2devid(char *devnm)
{
/* First look in /sys/block/$DEVNM/dev for %d:%d
int i;
int flags = O_RDWR;
int devid = devnm2devid(devnm);
+ long delay = 1000;
sprintf(buf, "%d:%d", major(devid), minor(devid));
for (i = 0 ; i < 25 ; i++) {
}
if (errno != EBUSY)
return fd;
- usleep(200000);
+ usleep(delay);
+ if (delay < 200000)
+ delay *= 2;
}
return -1;
}
{
int i;
struct stat stb_want;
+ long delay = 1000;
if (fstat(fd, &stb_want) != 0 ||
(stb_want.st_mode & S_IFMT) != S_IFBLK)
(stb.st_mode & S_IFMT) == S_IFBLK &&
(stb.st_rdev == stb_want.st_rdev))
return;
- usleep(200000);
+ usleep(delay);
+ if (delay < 200000)
+ delay *= 2;
}
if (i == 25)
dprintf("%s: timeout waiting for %s\n", __func__, dev);
return 0;
}
-int check_env(char *name)
-{
- char *val = getenv(name);
-
- if (val && atoi(val) == 1)
- return 1;
-
- return 0;
-}
-
__u32 random32(void)
{
__u32 rv;