summaryrefslogtreecommitdiff
path: root/apexd/apexd_loop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'apexd/apexd_loop.cpp')
-rw-r--r--apexd/apexd_loop.cpp7
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;