diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-03-09 17:55:07 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-03-09 18:02:23 +0100 |
commit | 587fec427c80b6c34dcf1d7570f891fcb652a7c5 (patch) | |
tree | 0b8f6e748ac8ecc34cbe6d03327532fb52a0e85b /src/import/import-raw.c | |
parent | ea79e73b8a8fa72fb959a0604f642f97e200a803 (diff) |
importd: add API for exporting container/VM images
Also, expose it in machinectl.
Diffstat (limited to 'src/import/import-raw.c')
-rw-r--r-- | src/import/import-raw.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/import/import-raw.c b/src/import/import-raw.c index 15e5eb2ca2..25b52f7cbd 100644 --- a/src/import/import-raw.c +++ b/src/import/import-raw.c @@ -117,7 +117,7 @@ int raw_import_new( i->on_finished = on_finished; i->userdata = userdata; - RATELIMIT_INIT(i->progress_rate_limit, 500 * USEC_PER_MSEC, 1); + RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1); i->last_percent = (unsigned) -1; i->image_root = strdup(image_root ?: "/var/lib/machines"); @@ -343,6 +343,9 @@ static int raw_import_process(RawImport *i) { l = read(i->input_fd, i->buffer + i->buffer_size, sizeof(i->buffer) - i->buffer_size); if (l < 0) { + if (errno == EAGAIN) + return 0; + r = log_error_errno(errno, "Failed to read input file: %m"); goto finish; } @@ -428,6 +431,10 @@ int raw_import_start(RawImport *i, int fd, const char *local, bool force_local, if (i->input_fd >= 0) return -EBUSY; + r = fd_nonblock(fd, true); + if (r < 0) + return r; + r = free_and_strdup(&i->local, local); if (r < 0) return r; |