Use logical path to handle different dm target per boot

When using multiple partitions, f2fs stores all the device paths, but we cannot
guarantee the dm targets are all the same across boot cycles.

Bug: 287247093
Change-Id: Ie4308a27548d4e814924afb656478cfa55fcf8b6
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
This commit is contained in:
Jaegeuk Kim 2023-11-10 15:16:14 -08:00
parent b5c02ec925
commit 95c61b3391

View file

@ -200,6 +200,13 @@ static bool create_crypto_blk_dev(const std::string& dm_name, const std::string&
LOG(ERROR) << "Could not create default-key device " << dm_name;
return false;
}
// If there are multiple partitions used for a single mount, F2FS stores
// their partition paths in superblock. If the paths are dm targets, we
// cannot guarantee them across device boots. Let's use the logical paths.
if (dm_name == kDmNameUserdata || dm_name == kDmNameUserdataZoned) {
*crypto_blkdev = "/dev/block/mapper/" + dm_name;
}
return true;
}