|
|
@@ -2001,16 +2001,19 @@ int dm_pool_register_metadata_threshold(struct dm_pool_metadata *pmd,
|
|
|
|
|
|
int dm_pool_metadata_set_needs_check(struct dm_pool_metadata *pmd)
|
|
|
{
|
|
|
- int r;
|
|
|
+ int r = -EINVAL;
|
|
|
struct dm_block *sblock;
|
|
|
struct thin_disk_superblock *disk_super;
|
|
|
|
|
|
down_write(&pmd->root_lock);
|
|
|
+ if (pmd->fail_io)
|
|
|
+ goto out;
|
|
|
+
|
|
|
pmd->flags |= THIN_METADATA_NEEDS_CHECK_FLAG;
|
|
|
|
|
|
r = superblock_lock(pmd, &sblock);
|
|
|
if (r) {
|
|
|
- DMERR("couldn't read superblock");
|
|
|
+ DMERR("couldn't lock superblock");
|
|
|
goto out;
|
|
|
}
|
|
|
|