Systemd/src/import
Lennart Poettering 17cbb288fa nspawn: add fallback top normal copy/reflink when we cannot btrfs snapshot
Given that other file systems (notably: xfs) support reflinks these days, let's
extend the file system snapshotting logic to fall back to plan copies or
reflinks when full btrfs subvolume snapshots are not available.

This essentially makes "systemd-nspawn --ephemeral" and "systemd-nspawn
--template=" available on non-btrfs subvolumes. Of course, both operations will
still be slower on non-btrfs than on btrfs (simply because reflinking each file
individually in a directory tree is still slower than doing this in one step
for a whole subvolume), but it's probably good enough for many cases, and we
should provide the users with the tools, they have to figure out what's good
for them.

Note that "machinectl clone" already had a fallback like this in place, this
patch generalizes this, and adds similar support to our other cases.
2016-11-22 13:35:09 +01:00
..
.gitignore import: introduce new mini-daemon systemd-importd, and make machinectl a client to it 2015-01-22 04:02:07 +01:00
curl-util.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
curl-util.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
export-raw.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
export-raw.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
export-tar.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
export-tar.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
export.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
import-common.c treewide: use stdio_unset_cloexec() function 2016-07-02 23:42:01 +06:00
import-common.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
import-compress.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
import-compress.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
import-pubring.gpg import: add image verification using gpg 2015-01-21 04:03:54 +01:00
import-raw.c tree-wide: drop NULL sentinel from strjoin 2016-10-23 11:43:27 -04:00
import-raw.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
import-tar.c tree-wide: drop NULL sentinel from strjoin 2016-10-23 11:43:27 -04:00
import-tar.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
import.c import: don't log "fake" errno values 2016-07-22 21:25:09 -04:00
importd.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
Makefile
org.freedesktop.import1.conf importd: drop dkr support 2015-12-10 16:54:41 +01:00
org.freedesktop.import1.policy.in importd: add API for exporting container/VM images 2015-03-09 18:02:23 +01:00
org.freedesktop.import1.service import: introduce new mini-daemon systemd-importd, and make machinectl a client to it 2015-01-22 04:02:07 +01:00
pull-common.c nspawn: add fallback top normal copy/reflink when we cannot btrfs snapshot 2016-11-22 13:35:09 +01:00
pull-common.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
pull-job.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
pull-job.h import: drop unused definition 2016-04-12 13:43:29 +02:00
pull-raw.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
pull-raw.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
pull-tar.c tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
pull-tar.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
pull.c import: don't log "fake" errno values 2016-07-22 21:25:09 -04:00
qcow2-util.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
qcow2-util.h tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00
test-qcow2.c tree-wide: remove Emacs lines from all files 2016-02-10 13:41:57 +01:00