Ignore the error ENXIO and ENOMEDIUM during a devs scan

Ignore the error ENXIO (device don't exists) and ENOMEDIUM (
No medium found -> like a cd tray empty) in the function
btrfs_scan_one_dir.
This avoids spurios errors due to an empty CD or a block device node
without a device (which is frequent in a static /dev).

Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
This commit is contained in:
Goffredo Baroncelli 2011-10-21 19:00:28 +02:00 committed by David Sterba
parent 6cd836d7d9
commit 681813b797

10
utils.c
View File

@ -1016,8 +1016,14 @@ again:
}
fd = open(fullpath, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "failed to read %s: %s\n", fullpath,
strerror(errno));
/* ignore the following errors:
ENXIO (device don't exists)
ENOMEDIUM (No medium found ->
like a cd tray empty)
*/
if(errno != ENXIO && errno != ENOMEDIUM)
fprintf(stderr, "failed to read %s: %s\n",
fullpath, strerror(errno));
continue;
}
ret = btrfs_scan_one_device(fd, fullpath, &tmp_devices,