diff --git a/src/import/import-raw.c b/src/import/import-raw.c index 9c2c74527f..fcb07751d2 100644 --- a/src/import/import-raw.c +++ b/src/import/import-raw.c @@ -368,7 +368,7 @@ static int raw_import_write(const void *p, size_t sz, void *userdata) { } /* Generate sparse file if we created/truncated the file */ - if (S_ISREG(i->output_stat.st_mode)) { + if (S_ISREG(i->output_stat.st_mode) && i->offset == UINT64_MAX) { ssize_t n; n = sparse_write(i->output_fd, p, sz, 64); diff --git a/src/import/pull-job.c b/src/import/pull-job.c index fb869e7095..4e37dce33f 100644 --- a/src/import/pull-job.c +++ b/src/import/pull-job.c @@ -306,7 +306,7 @@ static int pull_job_write_uncompressed(const void *p, size_t sz, void *userdata) if (j->disk_fd >= 0) { - if (S_ISREG(j->disk_stat.st_mode)) { + if (S_ISREG(j->disk_stat.st_mode) && j->offset == UINT64_MAX) { ssize_t n; n = sparse_write(j->disk_fd, p, sz, 64);