diff --git a/cmdline/unix.c b/cmdline/unix.c index 0d9419e0..60b0ffc2 100644 --- a/cmdline/unix.c +++ b/cmdline/unix.c @@ -92,7 +92,7 @@ static int devuuid_dev(uint64_t device, char* uuid, size_t uuid_size) /* scan the UUID directory searching for the device */ d = opendir("/dev/disk/by-uuid"); if (!d) { - log_tag("uuid:by-uuidd:%u:%u: opendir(/dev/disk/by-uuid) failed\n", major(device), minor(device)); + log_tag("uuid:by-uuidd:%u:%u: opendir(/dev/disk/by-uuid) failed, %s\n", major(device), minor(device), strerror(errno)); /* directory missing?, likely we are not in Linux */ return -1; } @@ -104,7 +104,7 @@ static int devuuid_dev(uint64_t device, char* uuid, size_t uuid_size) ret = fstatat(dirfd(d), dd->d_name, &st, 0); if (ret != 0) { - log_tag("uuid:by-uuidd:%u:%u: fstatat(%s) failed\n", major(device), minor(device), dd->d_name); + log_tag("uuid:by-uuidd:%u:%u: fstatat(%s) failed, %s\n", major(device), minor(device), dd->d_name, strerror(errno)); /* generic error, ignore and continue the search */ continue; } @@ -118,7 +118,7 @@ static int devuuid_dev(uint64_t device, char* uuid, size_t uuid_size) pathprint(path, sizeof(path), "/dev/disk/by-uuid/%s", dd->d_name); ret = readlink(path, buf, sizeof(buf)); if (ret < 0 || ret == sizeof(buf)) { - log_tag("uuid:by-uuidd:%u:%u: readlink(/dev/disk/by-uuid/%s) failed\n", major(device), minor(device), dd->d_name); + log_tag("uuid:by-uuidd:%u:%u: readlink(/dev/disk/by-uuid/%s) failed, %s\n", major(device), minor(device), dd->d_name, strerror(errno)); /* generic error, ignore and continue the search */ continue; } @@ -134,6 +134,8 @@ static int devuuid_dev(uint64_t device, char* uuid, size_t uuid_size) } } + log_tag("uuid:by-uuidd:%u:%u: /dev/disk/by-uuid doesn't contain a matching block device\n", major(device), minor(device)); + /* not found */ closedir(d); return -1; @@ -156,14 +158,14 @@ static int devuuid_blkid(uint64_t device, char* uuid, size_t uuid_size) devname = blkid_devno_to_devname(device); if (!devname) { - log_tag("uuid:blkid:%u:%u: blkid_devno_to_devname() failed\n", major(device), minor(device)); + log_tag("uuid:blkid:%u:%u: blkid_devno_to_devname() failed, %s\n", major(device), minor(device), strerror(errno)); /* device mapping failed */ return -1; } uuidname = blkid_get_tag_value(cache, "UUID", devname); if (!uuidname) { - log_tag("uuid:blkid:%u:%u: blkid_get_tag_value(%s) failed\n", major(device), minor(device), devname); + log_tag("uuid:blkid:%u:%u: blkid_get_tag_value(UUID,%s) failed, %s\n", major(device), minor(device), devname, strerror(errno)); /* uuid mapping failed */ free(devname); return -1; @@ -185,12 +187,16 @@ int devuuid(uint64_t device, char* uuid, size_t uuid_size) #if HAVE_FSTATAT if (devuuid_dev(device, uuid, uuid_size) == 0) return 0; +#else + log_tag("uuid:by-uuidd:%u:%u: by-uuid not supported\n", major(device), minor(device)); #endif /* fall back to blkid for other cases */ #if HAVE_BLKID if (devuuid_blkid(device, uuid, uuid_size) == 0) return 0; +#else + log_tag("uuid:blkid:%u:%u: blkid not supported\n", major(device), minor(device)); #endif log_tag("uuid:notfound:%u:%u:\n", major(device), minor(device));