diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index ec73fde44b22..38136c5eb313 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -2243,8 +2243,11 @@ static long fuse_dev_ioctl(struct file *file, unsigned int cmd, struct fuse_dev *fud = NULL; struct fuse_passthrough_out pto; - switch (cmd) { - case FUSE_DEV_IOC_CLONE: + if (_IOC_TYPE(cmd) != FUSE_DEV_IOC_MAGIC) + return -ENOTTY; + + switch (_IOC_NR(cmd)) { + case _IOC_NR(FUSE_DEV_IOC_CLONE): res = -EFAULT; if (!get_user(oldfd, (__u32 __user *)arg)) { struct file *old = fget(oldfd);