1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/daemon/graphdriver
Sargun Dhillon 3ec4ec2857 Add zero-copy support to copy module
This changeset allows Docker's VFS, and Overlay to take advantage of
Linux's zerocopy APIs.

The copy function first tries to use the ficlone ioctl. Reason being:
 - they do not allow partial success (aka short writes)
 - clones are expected to be a fast metadata operation
See: http://oss.sgi.com/archives/xfs/2015-12/msg00356.html

If the clone fails, we fall back to copy_file_range, which internally
may fall back to splice, which has an upper limit on the size
of copy it can perform. Given that, we have to loop until the copy
is done.

For a given dirCopy operation, if the clone fails, we will not try
it again during any other file copy. Same is true with copy_file_range.

If all else fails, we fall back to traditional copy.

Signed-off-by: Sargun Dhillon <sargun@sargun.me>
2017-10-24 13:14:40 -07:00
..
aufs LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00
btrfs LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00
copy Add zero-copy support to copy module 2017-10-24 13:14:40 -07:00
devmapper devmapper: tell why xfs is not supported 2017-09-17 22:04:31 -07:00
graphtest LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00
lcow fix typo 2017-10-01 23:11:58 +08:00
overlay Separate daemon/graphdriver/overlay/copy into its own package 2017-10-24 13:14:40 -07:00
overlay2 Merge pull request #34342 from coolljt0725/fallback_to_naive_diff 2017-10-03 06:45:17 -07:00
overlayutils 'docker daemon' deprecation message doesn't use the new versioning scheme 2017-03-03 17:26:49 +08:00
quota Update logrus to v1.0.1 2017-07-31 13:16:46 -07:00
register devmapper gd: disable for static build 2017-09-17 22:04:31 -07:00
vfs LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00
windows LCOW: API: Add platform to /images/create and /build 2017-10-06 11:44:18 -07:00
zfs Merge pull request #34861 from tklauser/fix-cstring-leaks 2017-09-21 09:14:07 -07:00
counter.go Merge pull request #31083 from xulike666/fight-for-readability 2017-03-03 15:13:01 +01:00
driver.go LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00
driver_freebsd.go Add goimports to linters. 2017-08-21 18:15:08 -04:00
driver_linux.go Add missing eCryptfs translation to FsNames 2017-09-18 19:06:13 +02:00
driver_solaris.go Fix CString memory leaks 2017-09-15 09:57:26 +02:00
driver_unsupported.go Get the Docker Engine to build clean on Solaris 2016-05-23 16:37:12 -07:00
driver_windows.go Windows: Remove windowsdiff driver 2016-05-20 16:18:19 -07:00
fsdiff.go LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00
plugin.go Add deadcode linter 2017-08-21 18:18:50 -04:00
proxy.go LCOW: Implemented support for docker cp + build 2017-09-14 12:07:52 -07:00