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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to