[PATCH 00/12] add SMB2 server-side copy support

David Disseldorp ddiss at samba.org
Wed Nov 7 17:19:34 MST 2012


This change-set adds support for the FSCTL_SRV_COPYCHUNK and
FSCTL_SRV_REQUEST_RESUME_KEY server-side copy SMB2 ioctls, allowing
for network round-trip avoidance during a file copy, i.e.:
http://www.samba.org/~ddiss/slides/snappery_samba/img17.html

These patches were previously posted alongside the FSRVP and vfs_btrfs
changes, but are more manageable and reviewable as a smaller set.

Feedback appreciated.

Cheers, David

The following changes since commit da284b3765e3c73d204fe2c8b45d6fbd2c08d451:

  heimdal_build: Fix finding of system heimdal. (2012-11-06 16:27:03 +0100)

are available in the git repository at:

  git://git.samba.org/ddiss/samba.git copy_chunk_no_btrfs

for you to fetch changes up to 15aad17ee9145cafe7cda96a8ad5031480be76cb:

  smb2_ioctl: only pass through to VFS on a valid fsp (2012-11-08 00:55:19 +0100)

----------------------------------------------------------------
David Disseldorp (12):
      smb2_ioctl: split ioctl handlers into separate funtions
      smb2_ioctl: split ioctl handler code on device type
      smb2_ioctl: add FSCTL_SRV_REQUEST_RESUME_KEY support
      s3-vfs: add copy_chunk vfs hooks
      smb2_ioctl: add support for FSCTL_SRV_COPYCHUNK
      smb2_ioctl: remove ioctl error response assumption
      selftest: enable samba3.smb2.ioctl tests against s3fs
      torture: skip FSCTL_SRV_ENUM_SNAPS test when not supported
      smbd: split out file_fsp_get from file_fsp_smb2
      smb2_ioctl: perform locking around copychunk requests
      torture: add locking tests for copychunk
      smb2_ioctl: only pass through to VFS on a valid fsp

 docs-xml/manpages/vfs_full_audit.8.xml |    2 +
 examples/VFS/skel_opaque.c             |   21 +++++
 examples/VFS/skel_transparent.c        |   22 ++++++
 libcli/smb/smb_constants.h             |    2 +
 selftest/knownfail                     |   16 ++--
 selftest/skip                          |    1 -
 source3/Makefile.in                    |    5 ++
 source3/include/vfs.h                  |   25 +++++-
 source3/include/vfs_macros.h           |   10 +++
 source3/modules/vfs_default.c          |   71 +++++++++++++++++
 source3/modules/vfs_full_audit.c       |   38 +++++++++
 source3/modules/vfs_time_audit.c       |   87 ++++++++++++++++++++
 source3/smbd/files.c                   |   34 +++++---
 source3/smbd/proto.h                   |    3 +
 source3/smbd/smb2_ioctl.c              |  422 +++++++++++++++++--------------------------------------------------------------------------------
 source3/smbd/smb2_ioctl_dfs.c          |  158 +++++++++++++++++++++++++++++++++++++
 source3/smbd/smb2_ioctl_filesys.c      |   77 ++++++++++++++++++
 source3/smbd/smb2_ioctl_named_pipe.c   |  194 +++++++++++++++++++++++++++++++++++++++++++++
 source3/smbd/smb2_ioctl_network_fs.c   |  568 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 source3/smbd/smb2_ioctl_private.h      |   54 +++++++++++++
 source3/smbd/vfs.c                     |   26 +++++-
 source3/wscript_build                  |    5 ++
 source4/libcli/smb2/ioctl.c            |   29 ++++++-
 source4/torture/smb2/ioctl.c           |  264 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 24 files changed, 1759 insertions(+), 375 deletions(-)
 create mode 100644 source3/smbd/smb2_ioctl_dfs.c
 create mode 100644 source3/smbd/smb2_ioctl_filesys.c
 create mode 100644 source3/smbd/smb2_ioctl_named_pipe.c
 create mode 100644 source3/smbd/smb2_ioctl_network_fs.c
 create mode 100644 source3/smbd/smb2_ioctl_private.h



More information about the samba-technical mailing list