From e986910e87ef3e850423a7c1817b78c2d3275c38 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 30 Sep 2018 02:58:50 +0900 Subject: [PATCH] import: sparse_write() returns negative errno --- src/import/import-raw.c | 2 +- src/import/pull-job.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/import/import-raw.c b/src/import/import-raw.c index f31432c..4537c42 100644 --- a/src/import/import-raw.c +++ b/src/import/import-raw.c @@ -307,7 +307,7 @@ static int raw_import_write(const void *p, size_t sz, void *userdata) { n = sparse_write(i->output_fd, p, sz, 64); if (n < 0) - return -errno; + return (int) n; if ((size_t) n < sz) return -EIO; diff --git a/src/import/pull-job.c b/src/import/pull-job.c index 1f78f09..c494bbe 100644 --- a/src/import/pull-job.c +++ b/src/import/pull-job.c @@ -233,10 +233,13 @@ static int pull_job_write_uncompressed(const void *p, size_t sz, void *userdata) if (j->allow_sparse) n = sparse_write(j->disk_fd, p, sz, 64); - else + else { n = write(j->disk_fd, p, sz); + if (n < 0) + n = -errno; + } if (n < 0) - return log_error_errno(errno, "Failed to write file: %m"); + return log_error_errno((int) n, "Failed to write file: %m"); if ((size_t) n < sz) { log_error("Short write"); return -EIO; -- 2.7.4