]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid/src/probe: check for ENOMEDIUM from ioctl(CDROM_LAST_WRITTEN)
authorJeremi Piotrowski <jpiotrowski@linux.microsoft.com>
Wed, 8 Dec 2021 17:09:53 +0000 (09:09 -0800)
committerKarel Zak <kzak@redhat.com>
Fri, 10 Dec 2021 14:19:22 +0000 (15:19 +0100)
The CD device on Azure VMs returns CDS_DISC_OK from CDROM_DRIVE_STATUS even
when no disc is present. In that case an ENOMEDIUM from CDROM_LAST_WRITTEN
follows. Catch that and return error to prevent probing which results in
hundreds of "unaligned transfer" warnings in the kernel logbuffer.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
libblkid/src/probe.c

index 3685ea5e13aee5e908a9c8f5c8099511e5ff83e5..513649916d7d236ea741eab8d60abffe14298d26 100644 (file)
@@ -994,8 +994,12 @@ int blkid_probe_set_device(blkid_probe pr, int fd,
                }
 
 # ifdef CDROM_LAST_WRITTEN
-               if (ioctl(fd, CDROM_LAST_WRITTEN, &last_written) == 0)
+               if (ioctl(fd, CDROM_LAST_WRITTEN, &last_written) == 0) {
                        pr->flags |= BLKID_FL_CDROM_DEV;
+               } else {
+                       if (errno == ENOMEDIUM)
+                               goto err;
+               }
 # endif
 
                if (pr->flags & BLKID_FL_CDROM_DEV) {