diff options
Diffstat (limited to 'drivers/md/dm-log.c')
-rw-r--r-- | drivers/md/dm-log.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/md/dm-log.c b/drivers/md/dm-log.c index a60acf8d385a..a66428d860fe 100644 --- a/drivers/md/dm-log.c +++ b/drivers/md/dm-log.c | |||
@@ -478,7 +478,14 @@ static int disk_resume(struct dirty_log *log) | |||
478 | DMWARN("%s: Failed to read header on mirror log device", | 478 | DMWARN("%s: Failed to read header on mirror log device", |
479 | lc->log_dev->name); | 479 | lc->log_dev->name); |
480 | fail_log_device(lc); | 480 | fail_log_device(lc); |
481 | return r; | 481 | /* |
482 | * If the log device cannot be read, we must assume | ||
483 | * all regions are out-of-sync. If we simply return | ||
484 | * here, the state will be uninitialized and could | ||
485 | * lead us to return 'in-sync' status for regions | ||
486 | * that are actually 'out-of-sync'. | ||
487 | */ | ||
488 | lc->header.nr_regions = 0; | ||
482 | } | 489 | } |
483 | 490 | ||
484 | /* set or clear any new bits -- device has grown */ | 491 | /* set or clear any new bits -- device has grown */ |