vold: replacing fs_mgr_read_fstab() with fs_mgr_read_fstab_default()
The original default /fstab.{ro.hardware} might be moved to /vendor/etc/.
or /odm/etc/. Use the new API to get the default fstab instead of using
the hard-coded /fstab.{ro.hardware}.
Bug: 35811655
Test: boot marlin with /vendor/etc/fstab.marlin
Change-Id: I92d6aefe6ff3433b7d1a671358d990bb7b1f2150
diff --git a/TrimTask.cpp b/TrimTask.cpp
index 6c141f2..08e6499 100644
--- a/TrimTask.cpp
+++ b/TrimTask.cpp
@@ -65,10 +65,10 @@
}
void TrimTask::addFromFstab() {
- struct fstab *fstab;
+ std::unique_ptr<fstab, decltype(&fs_mgr_free_fstab)> fstab(fs_mgr_read_fstab_default(),
+ fs_mgr_free_fstab);
struct fstab_rec *prev_rec = NULL;
- fstab = fs_mgr_read_fstab(android::vold::DefaultFstabPath().c_str());
for (int i = 0; i < fstab->num_entries; i++) {
/* Skip raw partitions */
if (!strcmp(fstab->recs[i].fs_type, "emmc") ||
@@ -96,7 +96,6 @@
mPaths.push_back(fstab->recs[i].mount_point);
prev_rec = &fstab->recs[i];
}
- fs_mgr_free_fstab(fstab);
}
void TrimTask::start() {