Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23fe20fb authored by Tao Bao's avatar Tao Bao Committed by android-build-merger
Browse files

Merge "Log the error message when failing to mount/umount."

am: 850f89f1

Change-Id: I5de062307d6a395035cada802fd8fe202418407b
parents 197e49d6 850f89f1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -29,9 +29,11 @@ include $(BUILD_STATIC_LIBRARY)
# ===============================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := mounts.cpp
LOCAL_CLANG := true
LOCAL_CFLAGS := -Wall -Wno-unused-parameter -Werror
LOCAL_CFLAGS := \
    -Wall \
    -Werror
LOCAL_MODULE := libmounts
LOCAL_STATIC_LIBRARIES := libbase
include $(BUILD_STATIC_LIBRARY)

# recovery (static executable)
+18 −8
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
#include <string>
#include <vector>

#include <android-base/logging.h>

struct MountedVolume {
    std::string device;
    std::string mount_point;
@@ -75,15 +77,23 @@ MountedVolume* find_mounted_volume_by_mount_point(const char* mount_point) {
}

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.
  // 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();
    return umount(mount_point.c_str());
  int result = umount(mount_point.c_str());
  if (result == -1) {
    PLOG(WARNING) << "Failed to umount " << mount_point;
  }
  return result;
}

int remount_read_only(MountedVolume* volume) {
    return mount(volume->device.c_str(), volume->mount_point.c_str(), volume->filesystem.c_str(),
  int result = mount(volume->device.c_str(), volume->mount_point.c_str(),
                     volume->filesystem.c_str(),
                     MS_NOATIME | MS_NODEV | MS_NODIRATIME | MS_RDONLY | MS_REMOUNT, 0);
  if (result == -1) {
    PLOG(WARNING) << "Failed to remount read-only " << volume->mount_point;
  }
  return result;
}