From 681813b7972dcdcd2e989389a6ed5e6b7794dd2b Mon Sep 17 00:00:00 2001 From: Goffredo Baroncelli Date: Fri, 21 Oct 2011 19:00:28 +0200 Subject: [PATCH] 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 --- utils.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/utils.c b/utils.c index 938f9a5..8e1e66c 100644 --- a/utils.c +++ b/utils.c @@ -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, -- 2.7.4