From 6b455c29be7a0e130d953d5afd79201ff987e294 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Fri, 20 Jan 2017 11:52:33 -0800 Subject: [PATCH] Remove coldboot from vold coldboot is now taken care by ueventd, so removing the duplicate logic to save boottime. This CL also fixes a missing lock. Bug: 33786699 Test: manual Change-Id: I71270252f3153abc815d142b5da7a9cb85b94dac --- VolumeManager.cpp | 1 + main.cpp | 50 +---------------------------------------------- 2 files changed, 2 insertions(+), 49 deletions(-) diff --git a/VolumeManager.cpp b/VolumeManager.cpp index 2085ca8..4a649bb 100644 --- a/VolumeManager.cpp +++ b/VolumeManager.cpp @@ -350,6 +350,7 @@ void VolumeManager::handleBlockEvent(NetlinkEvent *evt) { } void VolumeManager::addDiskSource(const std::shared_ptr& diskSource) { + std::lock_guard lock(mLock); mDiskSources.push_back(diskSource); } diff --git a/main.cpp b/main.cpp index 68477ac..4810d43 100644 --- a/main.cpp +++ b/main.cpp @@ -36,11 +36,9 @@ #include #include #include -#include #include static int process_config(VolumeManager *vm, bool* has_adoptable); -static void coldboot(const char *path); static void parse_args(int argc, char** argv); struct fstab *fstab; @@ -117,9 +115,6 @@ int main(int argc, char** argv) { exit(1); } - coldboot("/sys/block"); -// coldboot("/sys/class/switch"); - /* * Now that we're up, we can respond to commands */ @@ -139,7 +134,7 @@ int main(int argc, char** argv) { // Eventually we'll become the monitoring thread while(1) { - sleep(1000); + pause(); } LOG(ERROR) << "Vold exiting"; @@ -170,49 +165,6 @@ static void parse_args(int argc, char** argv) { CHECK(android::vold::sFsckUntrustedContext != nullptr); } -static void do_coldboot(DIR *d, int lvl) { - struct dirent *de; - int dfd, fd; - - dfd = dirfd(d); - - fd = openat(dfd, "uevent", O_WRONLY | O_CLOEXEC); - if(fd >= 0) { - write(fd, "add\n", 4); - close(fd); - } - - while((de = readdir(d))) { - DIR *d2; - - if (de->d_name[0] == '.') - continue; - - if (de->d_type != DT_DIR && lvl > 0) - continue; - - fd = openat(dfd, de->d_name, O_RDONLY | O_DIRECTORY); - if(fd < 0) - continue; - - d2 = fdopendir(fd); - if(d2 == 0) - close(fd); - else { - do_coldboot(d2, lvl + 1); - closedir(d2); - } - } -} - -static void coldboot(const char *path) { - DIR *d = opendir(path); - if(d) { - do_coldboot(d, 0); - closedir(d); - } -} - static int process_config(VolumeManager *vm, bool* has_adoptable) { std::string path(android::vold::DefaultFstabPath()); fstab = fs_mgr_read_fstab(path.c_str());