diff --git a/src/import/import-raw.c b/src/import/import-raw.c index f31432cd04..4537c4210c 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 1f78f09718..c494bbec3c 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;