* commit '3f669e078b03a5e9452e455c5496d050f10ae402': libziparchive: fix fallocate failures
This commit is contained in:
commit
891084be38
1 changed files with 6 additions and 1 deletions
|
|
@ -1008,8 +1008,13 @@ class FileWriter : public Writer {
|
|||
// entry. Note that the call to ftruncate below will change the file size but
|
||||
// will not allocate space on disk and this call to fallocate will not
|
||||
// change the file size.
|
||||
// Note: fallocate is only supported by the following filesystems -
|
||||
// btrfs, ext4, ocfs2, and xfs. Therefore fallocate might fail with
|
||||
// EOPNOTSUPP error when issued in other filesystems.
|
||||
// Hence, check for the return error code before concluding that the
|
||||
// disk does not have enough space.
|
||||
result = TEMP_FAILURE_RETRY(fallocate(fd, 0, current_offset, declared_length));
|
||||
if (result == -1) {
|
||||
if (result == -1 && errno == ENOSPC) {
|
||||
ALOGW("Zip: unable to allocate space for file to %" PRId64 ": %s",
|
||||
static_cast<int64_t>(declared_length + current_offset), strerror(errno));
|
||||
return std::unique_ptr<FileWriter>(nullptr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue