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

Commit 245b34d3 authored by Jaegeuk Kim's avatar Jaegeuk Kim Committed by Luca Stefani
Browse files

add sload.f2fs for recovery format



Change-Id: Iddfe54b2b36f2d531925cbe61c98dbfb4903c0d1
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@google.com>
(cherry picked from commit c1c7311b)
parent 58337225
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ LOCAL_REQUIRED_MODULES := e2fsdroid_static mke2fs_static mke2fs.conf

ifeq ($(TARGET_USERIMAGES_USE_F2FS),true)
ifeq ($(HOST_OS),linux)
LOCAL_REQUIRED_MODULES += mkfs.f2fs
LOCAL_REQUIRED_MODULES += sload.f2fs mkfs.f2fs
endif
endif

+13 −6
Original line number Diff line number Diff line
@@ -301,16 +301,23 @@ int format_volume(const char* volume, const char* directory) {
  }

  // Has to be f2fs because we checked earlier.
  std::vector<std::string> f2fs_args = { "/sbin/mkfs.f2fs", "-d1", "-f",
                                         "-O", "encrypt", "-O", "quota",
                                         v->blk_device };
  std::string cmd("/sbin/mkfs.f2fs");
  std::vector<std::string> make_f2fs_cmd = { cmd,       "-d1", "-f",    "-O",
                                             "encrypt", "-O",  "quota", v->blk_device };
  if (length >= 512) {
    f2fs_args.push_back(std::to_string(length / 512));
    make_f2fs_cmd.push_back(std::to_string(length / 512));
  }

  int result = exec_cmd(f2fs_args);
  int result = exec_cmd(make_f2fs_cmd);
  if (result == 0 && directory != nullptr) {
    cmd = "/sbin/sload.f2fs";
    std::vector<std::string> sload_f2fs_cmd = {
      cmd, "-f", directory, "-t", volume, v->blk_device,
    };
    result = exec_cmd(sload_f2fs_cmd);
  }
  if (result != 0) {
    PLOG(ERROR) << "format_volume: Failed to make f2fs on " << v->blk_device;
    PLOG(ERROR) << "format_volume: Failed " << cmd << " on " << v->blk_device;
    return -1;
  }
  return 0;
+9 −0
Original line number Diff line number Diff line
@@ -354,6 +354,15 @@ Value* FormatFn(const char* name, State* state, const std::vector<std::unique_pt
      LOG(ERROR) << name << ": mkfs.f2fs failed (" << status << ") on " << location;
      return StringValue("");
    }

    const char* sload_argv[] = { "/sbin/sload.f2fs", "-t", mount_point.c_str(), location.c_str(),
                                 nullptr };
    status = exec_cmd(sload_argv[0], const_cast<char**>(sload_argv));
    if (status != 0) {
      LOG(ERROR) << name << ": sload.f2fs failed (" << status << ") on " << location;
      return StringValue("");
    }

    return StringValue(location);
  } else {
    LOG(ERROR) << name << ": unsupported fs_type \"" << fs_type << "\" partition_type \""