diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-03-05 00:56:08 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-03-05 00:59:38 +0100 |
commit | b6e676ce41508e2aeea22202fc8f234126177f52 (patch) | |
tree | 8fcf8bca4f59eaab91ef13909e0454cf1684c225 /src/import/pull-tar.c | |
parent | 776a972612be7131ce6f7accd66e75ca7e0fce2a (diff) |
importd: add new bus calls for importing local tar and raw images
This also adds "machinectl import-raw" and "machinectl import-tar" to
wrap these new bus calls.
THe commands basically do for local files that "machinectl pull-raw" and
friends do for remote files.
Diffstat (limited to 'src/import/pull-tar.c')
-rw-r--r-- | src/import/pull-tar.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/import/pull-tar.c b/src/import/pull-tar.c index de653a88f9..504642fa2b 100644 --- a/src/import/pull-tar.c +++ b/src/import/pull-tar.c @@ -32,6 +32,7 @@ #include "mkdir.h" #include "path-util.h" #include "import-util.h" +#include "import-common.h" #include "curl-util.h" #include "pull-job.h" #include "pull-common.h" @@ -276,11 +277,11 @@ static void tar_pull_job_on_finished(PullJob *j) { tar_pull_report_progress(i, TAR_FINALIZING); - r = pull_make_read_only(i->temp_path); + r = import_make_read_only(i->temp_path); if (r < 0) goto finish; - if (rename(i->temp_path, i->final_path) < 0) { + if (renameat2(AT_FDCWD, i->temp_path, AT_FDCWD, i->final_path, RENAME_NOREPLACE) < 0) { r = log_error_errno(errno, "Failed to rename to final image name: %m"); goto finish; } @@ -334,7 +335,7 @@ static int tar_pull_job_on_open_disk(PullJob *j) { } else if (r < 0) return log_error_errno(errno, "Failed to create subvolume %s: %m", i->temp_path); - j->disk_fd = pull_fork_tar(i->temp_path, &i->tar_pid); + j->disk_fd = import_fork_tar(i->temp_path, &i->tar_pid); if (j->disk_fd < 0) return j->disk_fd; |