Merge "add sload.f2fs for recovery format" am: 4eaf7a157d
am: 3d4359d3ae
Change-Id: I4098c81a3c5cef921463c6b7512113961034f81b
This commit is contained in:
+1
-1
@@ -89,7 +89,7 @@ LOCAL_REQUIRED_MODULES := e2fsdroid_static mke2fs_static mke2fs.conf
|
|||||||
|
|
||||||
ifeq ($(TARGET_USERIMAGES_USE_F2FS),true)
|
ifeq ($(TARGET_USERIMAGES_USE_F2FS),true)
|
||||||
ifeq ($(HOST_OS),linux)
|
ifeq ($(HOST_OS),linux)
|
||||||
LOCAL_REQUIRED_MODULES += mkfs.f2fs
|
LOCAL_REQUIRED_MODULES += sload.f2fs mkfs.f2fs
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -324,16 +324,23 @@ int format_volume(const char* volume, const char* directory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Has to be f2fs because we checked earlier.
|
// Has to be f2fs because we checked earlier.
|
||||||
std::vector<std::string> f2fs_args = { "/sbin/mkfs.f2fs", "-d1", "-f",
|
std::string cmd("/sbin/mkfs.f2fs");
|
||||||
"-O", "encrypt", "-O", "quota",
|
std::vector<std::string> make_f2fs_cmd = { cmd, "-d1", "-f", "-O",
|
||||||
v->blk_device };
|
"encrypt", "-O", "quota", v->blk_device };
|
||||||
if (length >= 512) {
|
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) {
|
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 -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -318,6 +318,15 @@ Value* FormatFn(const char* name, State* state, const std::vector<std::unique_pt
|
|||||||
LOG(ERROR) << name << ": mkfs.f2fs failed (" << status << ") on " << location;
|
LOG(ERROR) << name << ": mkfs.f2fs failed (" << status << ") on " << location;
|
||||||
return StringValue("");
|
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);
|
return StringValue(location);
|
||||||
} else {
|
} else {
|
||||||
LOG(ERROR) << name << ": unsupported fs_type \"" << fs_type << "\" partition_type \""
|
LOG(ERROR) << name << ": unsupported fs_type \"" << fs_type << "\" partition_type \""
|
||||||
|
|||||||
Reference in New Issue
Block a user