From: Yu Watanabe Date: Sat, 29 Sep 2018 17:58:50 +0000 (+0900) Subject: import: sparse_write() returns negative errno X-Git-Tag: v240~663 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e986910e87ef3e850423a7c1817b78c2d3275c38;p=thirdparty%2Fsystemd.git import: sparse_write() returns negative errno --- diff --git a/src/import/import-raw.c b/src/import/import-raw.c index f31432cd046..4537c4210ca 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 1f78f097185..c494bbec3cb 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;