diff --git a/fs_mgr/fs_mgr.cpp b/fs_mgr/fs_mgr.cpp index 88f7a2ce6..943fe109c 100644 --- a/fs_mgr/fs_mgr.cpp +++ b/fs_mgr/fs_mgr.cpp @@ -1179,11 +1179,12 @@ int fs_mgr_mount_all(Fstab* fstab, int mount_mode) { // wrapper to __mount() and expects a fully prepared fstab_rec, // unlike fs_mgr_do_mount which does more things with avb / verity etc. -int fs_mgr_do_mount_one(const FstabEntry& entry) { +int fs_mgr_do_mount_one(const FstabEntry& entry, const std::string& mount_point) { // Run fsck if needed prepare_fs_for_mount(entry.blk_device, entry); - int ret = __mount(entry.blk_device, entry.mount_point, entry); + int ret = + __mount(entry.blk_device, mount_point.empty() ? entry.mount_point : mount_point, entry); if (ret) { ret = (errno == EBUSY) ? FS_MGR_DOMNT_BUSY : FS_MGR_DOMNT_FAILED; } diff --git a/fs_mgr/include/fs_mgr.h b/fs_mgr/include/fs_mgr.h index 814ba4690..e87332f30 100644 --- a/fs_mgr/include/fs_mgr.h +++ b/fs_mgr/include/fs_mgr.h @@ -69,7 +69,7 @@ int fs_mgr_mount_all(Fstab* fstab, int mount_mode); int fs_mgr_do_mount(fstab* fstab, const char* n_name, char* n_blk_device, char* tmp_mount_point); int fs_mgr_do_mount(fstab* fstab, const char* n_name, char* n_blk_device, char* tmp_mount_point, bool need_cp); -int fs_mgr_do_mount_one(const FstabEntry& entry); +int fs_mgr_do_mount_one(const FstabEntry& entry, const std::string& mount_point = ""); int fs_mgr_do_mount_one(fstab_rec* rec); int fs_mgr_do_tmpfs_mount(const char *n_name); fstab_rec const* fs_mgr_get_crypt_entry(fstab const* fstab);