On Thu, 16.04.15 18:48, Andrey Wagin ([email protected]) wrote: > Hello Lennart, > > I read the v218-283-gd7b8eec commit and found that you expected that > BTRFS_IOC_SUBVOL_CREATE returns ENOTTY if sub-volumes are not > supported. But in the compat-mode this ioctl returns EINVAL. > > For example: > ext4_compat_ioctl returns ENOIOCTLCMD, then vfs_ioctl() convert it into > EINVAL. > vfs_ioctl() > error = filp->f_op->unlocked_ioctl(filp, cmd, arg); > if (error == -ENOIOCTLCMD) > error = -EINVAL; > > root@localhost:~# /bin/systemd-tmpfiles --create --remove --boot > --exclude-prefix=/dev > [/usr/lib/tmpfiles.d/var.conf:14] Duplicate line for path "/var/log", > ignoring. > Failed to create directory or subvolume "/var/lib/machines": Invalid argument
Hmm, is this the 32bit ioctl glue that makes 32bit userspace work with a 64bit kernel? If the kernel doesn't translate the ioctls correctly in this case and turns this into -EINVAL, shouldn't it be fixed in the kernel? It appears pretty obvious to me that this should be fixed in the kernel to ensure that 32bit and 64bit userspace both get the same error in these cases, and that should be ENOTTY... Could you file a bug on kernel bugzilla about this please? Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
