From 331e5c4c98907b471e3b871796508cacccbf06f0 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 1 Oct 2019 12:01:08 -0700 Subject: otautil: roots.cpp no longer needs 'mounts.h'. Commit 0f339e27bb753b0dafb17a315fa4b029ba31aa28 moved part of the mounts implementation into libfs_mgr. As a result, otautil/roots.cpp no longer depends on anything in the local otautil/mounts.h. Test: mmma bootable/recovery Change-Id: If16c3e19a62933358fb0002a10e8556a99f9d29a --- otautil/roots.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/otautil/roots.cpp b/otautil/roots.cpp index 431551785..aa7809b54 100644 --- a/otautil/roots.cpp +++ b/otautil/roots.cpp @@ -42,7 +42,6 @@ #include #include -#include "otautil/mounts.h" #include "otautil/sysutil.h" using android::fs_mgr::Fstab; -- cgit v1.2.3 From d628cfc15316605ad541c4cec683462a57458d75 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 1 Oct 2019 12:08:33 -0700 Subject: Move mounts.cpp from libotautil into libupdater. All the active users of mounts.h now live in updater/. Test: mmma bootable/recovery Test: Run recovery_unit_test on taimen. Test: Code search shows no reference to otautil/mounts.h in device dirs. Change-Id: I6c35d2e403e92a0111102d00aa4773f4f524650e --- otautil/Android.bp | 1 - otautil/include/otautil/mounts.h | 25 ------------ otautil/mounts.cpp | 82 ---------------------------------------- updater/Android.bp | 1 + updater/install.cpp | 1 - updater/mounts.cpp | 82 ++++++++++++++++++++++++++++++++++++++++ updater/mounts.h | 25 ++++++++++++ updater/simulator_runtime.cpp | 2 +- updater/updater_runtime.cpp | 2 +- 9 files changed, 110 insertions(+), 111 deletions(-) delete mode 100644 otautil/include/otautil/mounts.h delete mode 100644 otautil/mounts.cpp create mode 100644 updater/mounts.cpp create mode 100644 updater/mounts.h diff --git a/otautil/Android.bp b/otautil/Android.bp index 871dcae9a..6f816a17d 100644 --- a/otautil/Android.bp +++ b/otautil/Android.bp @@ -44,7 +44,6 @@ cc_library_static { android: { srcs: [ "logging.cpp", - "mounts.cpp", "parse_install_logs.cpp", "roots.cpp", "thermalutil.cpp", diff --git a/otautil/include/otautil/mounts.h b/otautil/include/otautil/mounts.h deleted file mode 100644 index 6786c8d2e..000000000 --- a/otautil/include/otautil/mounts.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -struct MountedVolume; - -bool scan_mounted_volumes(); - -MountedVolume* find_mounted_volume_by_mount_point(const char* mount_point); - -int unmount_mounted_volume(MountedVolume* volume); diff --git a/otautil/mounts.cpp b/otautil/mounts.cpp deleted file mode 100644 index 951311bf3..000000000 --- a/otautil/mounts.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "otautil/mounts.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include - -struct MountedVolume { - std::string device; - std::string mount_point; - std::string filesystem; - std::string flags; -}; - -static std::vector g_mounts_state; - -bool scan_mounted_volumes() { - for (size_t i = 0; i < g_mounts_state.size(); ++i) { - delete g_mounts_state[i]; - } - g_mounts_state.clear(); - - // Open and read mount table entries. - FILE* fp = setmntent("/proc/mounts", "re"); - if (fp == NULL) { - return false; - } - mntent* e; - while ((e = getmntent(fp)) != NULL) { - MountedVolume* v = new MountedVolume; - v->device = e->mnt_fsname; - v->mount_point = e->mnt_dir; - v->filesystem = e->mnt_type; - v->flags = e->mnt_opts; - g_mounts_state.push_back(v); - } - endmntent(fp); - return true; -} - -MountedVolume* find_mounted_volume_by_mount_point(const char* mount_point) { - for (size_t i = 0; i < g_mounts_state.size(); ++i) { - if (g_mounts_state[i]->mount_point == mount_point) return g_mounts_state[i]; - } - return nullptr; -} - -int unmount_mounted_volume(MountedVolume* volume) { - // Intentionally pass the empty string to umount if the caller tries to unmount a volume they - // already unmounted using this function. - std::string mount_point = volume->mount_point; - volume->mount_point.clear(); - int result = umount(mount_point.c_str()); - if (result == -1) { - PLOG(WARNING) << "Failed to umount " << mount_point; - } - return result; -} diff --git a/updater/Android.bp b/updater/Android.bp index 872ef86db..8a60ef76a 100644 --- a/updater/Android.bp +++ b/updater/Android.bp @@ -81,6 +81,7 @@ cc_library_static { "blockimg.cpp", "commands.cpp", "install.cpp", + "mounts.cpp", "updater.cpp", ], diff --git a/updater/install.cpp b/updater/install.cpp index b617f62c1..62ff87e76 100644 --- a/updater/install.cpp +++ b/updater/install.cpp @@ -60,7 +60,6 @@ #include "edify/updater_runtime_interface.h" #include "otautil/dirutil.h" #include "otautil/error_code.h" -#include "otautil/mounts.h" #include "otautil/print_sha1.h" #include "otautil/sysutil.h" diff --git a/updater/mounts.cpp b/updater/mounts.cpp new file mode 100644 index 000000000..943d35c75 --- /dev/null +++ b/updater/mounts.cpp @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "mounts.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +struct MountedVolume { + std::string device; + std::string mount_point; + std::string filesystem; + std::string flags; +}; + +static std::vector g_mounts_state; + +bool scan_mounted_volumes() { + for (size_t i = 0; i < g_mounts_state.size(); ++i) { + delete g_mounts_state[i]; + } + g_mounts_state.clear(); + + // Open and read mount table entries. + FILE* fp = setmntent("/proc/mounts", "re"); + if (fp == NULL) { + return false; + } + mntent* e; + while ((e = getmntent(fp)) != NULL) { + MountedVolume* v = new MountedVolume; + v->device = e->mnt_fsname; + v->mount_point = e->mnt_dir; + v->filesystem = e->mnt_type; + v->flags = e->mnt_opts; + g_mounts_state.push_back(v); + } + endmntent(fp); + return true; +} + +MountedVolume* find_mounted_volume_by_mount_point(const char* mount_point) { + for (size_t i = 0; i < g_mounts_state.size(); ++i) { + if (g_mounts_state[i]->mount_point == mount_point) return g_mounts_state[i]; + } + return nullptr; +} + +int unmount_mounted_volume(MountedVolume* volume) { + // Intentionally pass the empty string to umount if the caller tries to unmount a volume they + // already unmounted using this function. + std::string mount_point = volume->mount_point; + volume->mount_point.clear(); + int result = umount(mount_point.c_str()); + if (result == -1) { + PLOG(WARNING) << "Failed to umount " << mount_point; + } + return result; +} diff --git a/updater/mounts.h b/updater/mounts.h new file mode 100644 index 000000000..6786c8d2e --- /dev/null +++ b/updater/mounts.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +struct MountedVolume; + +bool scan_mounted_volumes(); + +MountedVolume* find_mounted_volume_by_mount_point(const char* mount_point); + +int unmount_mounted_volume(MountedVolume* volume); diff --git a/updater/simulator_runtime.cpp b/updater/simulator_runtime.cpp index d2074d69a..3ed7bf337 100644 --- a/updater/simulator_runtime.cpp +++ b/updater/simulator_runtime.cpp @@ -32,7 +32,7 @@ #include #include -#include "otautil/mounts.h" +#include "mounts.h" #include "otautil/sysutil.h" std::string SimulatorRuntime::GetProperty(const std::string_view key, diff --git a/updater/updater_runtime.cpp b/updater/updater_runtime.cpp index 761f99975..c4222a56e 100644 --- a/updater/updater_runtime.cpp +++ b/updater/updater_runtime.cpp @@ -31,7 +31,7 @@ #include #include -#include "otautil/mounts.h" +#include "mounts.h" #include "otautil/sysutil.h" std::string UpdaterRuntime::GetProperty(const std::string_view key, -- cgit v1.2.3