diff options
Diffstat (limited to 'apexd/apexd_loop.cpp')
-rw-r--r-- | apexd/apexd_loop.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/apexd/apexd_loop.cpp b/apexd/apexd_loop.cpp index bfff51b..62e3d56 100644 --- a/apexd/apexd_loop.cpp +++ b/apexd/apexd_loop.cpp @@ -173,10 +173,11 @@ Result<void> configureLoopDevice(const int device_fd, const std::string& target, if (target_fd.get() == -1) { struct statfs stbuf; int saved_errno = errno; - // let's give another try with buffered I/O for EROFS + // let's give another try with buffered I/O for EROFS and squashfs if (statfs(target.c_str(), &stbuf) != 0 || - stbuf.f_type != EROFS_SUPER_MAGIC_V1) { - return Error(saved_errno) << "Failed to open " << target; + (stbuf.f_type != EROFS_SUPER_MAGIC_V1 && + stbuf.f_type != SQUASHFS_MAGIC)) { + return Error(saved_errno) << "Failed to open " << target; } LOG(WARNING) << "Fallback to buffered I/O for " << target; use_buffered_IO = true; |