summaryrefslogtreecommitdiff
path: root/src/import/pull-tar.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-03-05 00:56:08 +0100
committerLennart Poettering <lennart@poettering.net>2015-03-05 00:59:38 +0100
commitb6e676ce41508e2aeea22202fc8f234126177f52 (patch)
tree8fcf8bca4f59eaab91ef13909e0454cf1684c225 /src/import/pull-tar.c
parent776a972612be7131ce6f7accd66e75ca7e0fce2a (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.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/import/pull-tar.c b/src/import/pull-tar.c
index de653a88f..504642fa2 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;