Block and wait for /dev/block/loop<N> to appear in case it was created asynchronously.
Bug: 134711825 Test: StorageManagerTest Change-Id: Id8616804bba622226ca21b8eff0d3eb577b4b7e0
This commit is contained in:
parent
170b45c75f
commit
1dd5c4f787
1 changed files with 8 additions and 0 deletions
8
Loop.cpp
8
Loop.cpp
|
@ -31,16 +31,20 @@
|
||||||
|
|
||||||
#include <linux/kdev_t.h>
|
#include <linux/kdev_t.h>
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
#include <android-base/logging.h>
|
#include <android-base/logging.h>
|
||||||
#include <android-base/stringprintf.h>
|
#include <android-base/stringprintf.h>
|
||||||
#include <android-base/strings.h>
|
#include <android-base/strings.h>
|
||||||
#include <android-base/unique_fd.h>
|
#include <android-base/unique_fd.h>
|
||||||
|
#include <fs_mgr/file_wait.h>
|
||||||
#include <utils/Trace.h>
|
#include <utils/Trace.h>
|
||||||
|
|
||||||
#include "Loop.h"
|
#include "Loop.h"
|
||||||
#include "VoldUtil.h"
|
#include "VoldUtil.h"
|
||||||
#include "sehandle.h"
|
#include "sehandle.h"
|
||||||
|
|
||||||
|
using namespace std::literals;
|
||||||
using android::base::StringPrintf;
|
using android::base::StringPrintf;
|
||||||
using android::base::unique_fd;
|
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;
|
PLOG(ERROR) << "Failed to open " << target;
|
||||||
return -errno;
|
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));
|
unique_fd device_fd(open(out_device.c_str(), O_RDWR | O_CLOEXEC));
|
||||||
if (device_fd.get() == -1) {
|
if (device_fd.get() == -1) {
|
||||||
PLOG(ERROR) << "Failed to open " << out_device;
|
PLOG(ERROR) << "Failed to open " << out_device;
|
||||||
|
|
Loading…
Reference in a new issue