svn commit: r283496 - head/sys/compat/linux
Dmitry Chagin
dchagin at FreeBSD.org
Sun May 24 18:12:05 UTC 2015
Author: dchagin
Date: Sun May 24 18:12:04 2015
New Revision: 283496
URL: https://svnweb.freebsd.org/changeset/base/283496
Log:
The latest cp tool is trying to use the btrfs clone operation that is
implemented via ioctl interface. First of all return ENOTSUP for this
operation as a cp fallback to usual method in that case. Secondly, do
not print out the message about unimplemented operation.
Modified:
head/sys/compat/linux/linux_ioctl.c
head/sys/compat/linux/linux_ioctl.h
Modified: head/sys/compat/linux/linux_ioctl.c
==============================================================================
--- head/sys/compat/linux/linux_ioctl.c Sun May 24 18:11:22 2015 (r283495)
+++ head/sys/compat/linux/linux_ioctl.c Sun May 24 18:12:04 2015 (r283496)
@@ -3596,9 +3596,16 @@ linux_ioctl(struct thread *td, struct li
sx_sunlock(&linux_ioctl_sx);
fdrop(fp, td);
- linux_msg(td, "ioctl fd=%d, cmd=0x%x ('%c',%d) is not implemented",
- args->fd, (int)(args->cmd & 0xffff),
- (int)(args->cmd & 0xff00) >> 8, (int)(args->cmd & 0xff));
+ switch (args->cmd & 0xffff) {
+ case LINUX_BTRFS_IOC_CLONE:
+ return (ENOTSUP);
+
+ default:
+ linux_msg(td, "ioctl fd=%d, cmd=0x%x ('%c',%d) is not implemented",
+ args->fd, (int)(args->cmd & 0xffff),
+ (int)(args->cmd & 0xff00) >> 8, (int)(args->cmd & 0xff));
+ break;
+ }
return (EINVAL);
}
Modified: head/sys/compat/linux/linux_ioctl.h
==============================================================================
--- head/sys/compat/linux/linux_ioctl.h Sun May 24 18:11:22 2015 (r283495)
+++ head/sys/compat/linux/linux_ioctl.h Sun May 24 18:12:04 2015 (r283496)
@@ -745,6 +745,12 @@
#define FBSD_LUSB_MIN 0xffdd
/*
+ * Linux btrfs clone operation
+ */
+#define LINUX_BTRFS_IOC_CLONE 0x9409 /* 0x40049409 */
+
+
+/*
* Pluggable ioctl handlers
*/
struct linux_ioctl_args;
More information about the svn-src-all
mailing list