Add reflink copy over SMB3.11 with new FSCTL_DUPLICATE_EXTENTS
authorSteve French <steve.french@primarydata.com>
Sun, 28 Jun 2015 04:18:36 +0000 (21:18 -0700)
committerSteve French <steve.french@primarydata.com>
Mon, 29 Jun 2015 02:15:38 +0000 (21:15 -0500)
commit02b1666544c08e245cb4e2253ed575f8128943d6
treeed2967b35329e08bf327c1985104ec06016c96b8
parentaab1893d5fbeb7c931e97189f54a71ab0ecbf4c7
Add reflink copy over SMB3.11 with new FSCTL_DUPLICATE_EXTENTS

 Getting fantastic copy performance with cp --reflink over SMB3.11
 using the new FSCTL_DUPLICATE_EXTENTS.

 This FSCTL was added in the SMB3.11 dialect (testing was
 against REFS file system) so have put it as a 3.11 protocol
 specific operation ("vers=3.1.1" on the mount).  Tested at
 the SMB3 plugfest in Redmond.

 It depends on the new FS Attribute (BLOCK_REFCOUNTING) which
 is used to advertise support for the ability to do this ioctl
 (if you can support multiple files pointing to the same block
 than this refcounting ability or equivalent is needed to
 support the new reflink-like duplicate extent SMB3 ioctl.

Signed-off-by: Steve French <steve.french@primarydata.com>
fs/cifs/cifsglob.h
fs/cifs/cifspdu.h
fs/cifs/ioctl.c
fs/cifs/smb2ops.c
fs/cifs/smb2pdu.h
fs/cifs/smbfsctl.h