Merge "Don't error on block size mismatches."

This commit is contained in:
David Anderson 2019-01-24 22:20:18 +00:00 committed by Gerrit Code Review
commit 10b0a155ee
2 changed files with 9 additions and 3 deletions

View File

@ -838,9 +838,10 @@ bool MetadataBuilder::UpdateBlockDeviceInfo(size_t index, const BlockDeviceInfo&
<< block_device.size << ")";
return false;
}
if (device_info.logical_block_size != geometry_.logical_block_size) {
LERROR << "Device logical block size does not match (got " << device_info.logical_block_size
<< ", expected " << geometry_.logical_block_size << ")";
if (geometry_.logical_block_size % device_info.logical_block_size) {
LERROR << "Device logical block size is misaligned (block size="
<< device_info.logical_block_size << ", alignment=" << geometry_.logical_block_size
<< ")";
return false;
}

View File

@ -495,6 +495,11 @@ TEST_F(BuilderTest, UpdateBlockDeviceInfo) {
EXPECT_EQ(new_info.size, 1024 * 1024);
new_info.logical_block_size = 512;
ASSERT_TRUE(builder->UpdateBlockDeviceInfo("super", new_info));
ASSERT_TRUE(builder->GetBlockDeviceInfo("super", &new_info));
EXPECT_EQ(new_info.logical_block_size, 4096);
new_info.logical_block_size = 7;
ASSERT_FALSE(builder->UpdateBlockDeviceInfo("super", new_info));
ASSERT_TRUE(builder->GetBlockDeviceInfo("super", &new_info));
EXPECT_EQ(new_info.logical_block_size, 4096);