compat_ioctl: fix warning caused by qemu
On Linux x86_64 host with 32bit userspace, running
qemu or even just "qemu-img create -f qcow2 some.img 1G"
causes a kernel warning:
ioctl32(qemu-img:5296): Unknown cmd fd(3) cmd(00005326){t:'S';sz:0} arg(7fffffff) on some.img
ioctl32(qemu-img:5296): Unknown cmd fd(3) cmd(801c0204){t:02;sz:28} arg(fff77350) on some.img
ioctl 00005326 is CDROM_DRIVE_STATUS,
ioctl 801c0204 is FDGETPRM.
The warning appears because the Linux compat-ioctl handler for these
ioctls only applies to block devices, while qemu also uses the ioctls on
plain files.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
committed by
Jens Axboe
parent
85ef06d1d2
commit
390192b300
@@ -68,6 +68,8 @@
|
||||
|
||||
#ifdef CONFIG_BLOCK
|
||||
#include <linux/loop.h>
|
||||
#include <linux/cdrom.h>
|
||||
#include <linux/fd.h>
|
||||
#include <scsi/scsi.h>
|
||||
#include <scsi/scsi_ioctl.h>
|
||||
#include <scsi/sg.h>
|
||||
@@ -944,6 +946,9 @@ COMPATIBLE_IOCTL(FIOQSIZE)
|
||||
IGNORE_IOCTL(LOOP_CLR_FD)
|
||||
/* md calls this on random blockdevs */
|
||||
IGNORE_IOCTL(RAID_VERSION)
|
||||
/* qemu/qemu-img might call these two on plain files for probing */
|
||||
IGNORE_IOCTL(CDROM_DRIVE_STATUS)
|
||||
IGNORE_IOCTL(FDGETPRM32)
|
||||
/* SG stuff */
|
||||
COMPATIBLE_IOCTL(SG_SET_TIMEOUT)
|
||||
COMPATIBLE_IOCTL(SG_GET_TIMEOUT)
|
||||
|
||||
Reference in New Issue
Block a user