From: Eric Biggers Date: Thu, 12 Nov 2015 01:43:17 +0000 (-0600) Subject: write.c: let compaction work on untruncatable files X-Git-Tag: v1.8.3~4 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=05bbdd83d65782a9872b579505e1299587cd2009;hp=ab64cfca6f15354ccef5a86441cd9c35898a220a write.c: let compaction work on untruncatable files --- diff --git a/src/write.c b/src/write.c index f3308a24..7f13630c 100644 --- a/src/write.c +++ b/src/write.c @@ -2430,7 +2430,10 @@ finish_write(WIMStruct *wim, int image, int write_flags, ret = WIMLIB_ERR_WRITE; if (unlikely(write_flags & WIMLIB_WRITE_FLAG_UNSAFE_COMPACT)) { /* Truncate any data the compaction freed up. */ - if (ftruncate(wim->out_fd.fd, wim->out_fd.offset)) { + if (ftruncate(wim->out_fd.fd, wim->out_fd.offset) && + errno != EINVAL) /* allow compaction on untruncatable files, + e.g. block devices */ + { ERROR_WITH_ERRNO("Failed to truncate the output WIM file"); goto out; }