diff --git a/Loop.cpp b/Loop.cpp index fa8f8ba..9fa876c 100644 --- a/Loop.cpp +++ b/Loop.cpp @@ -31,16 +31,20 @@ #include +#include + #include #include #include #include +#include #include #include "Loop.h" #include "VoldUtil.h" #include "sehandle.h" +using namespace std::literals; using android::base::StringPrintf; using android::base::unique_fd; @@ -74,6 +78,10 @@ int Loop::create(const std::string& target, std::string& out_device) { PLOG(ERROR) << "Failed to open " << target; return -errno; } + if (!android::fs_mgr::WaitForFile(out_device, 2s)) { + LOG(ERROR) << "Failed to find " << out_device; + return -ENOENT; + } unique_fd device_fd(open(out_device.c_str(), O_RDWR | O_CLOEXEC)); if (device_fd.get() == -1) { PLOG(ERROR) << "Failed to open " << out_device;