mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 07:38:10 +00:00
dm thin metadata: don't issue prefetches if a transaction abort has failed
If a transaction abort has failed then we can no longer use the metadata
device. Typically this happens if the superblock is unreadable.
This fix addresses a crash seen during metadata device failure testing.
Fixes: 8a01a6af75
("dm thin: prefetch missing metadata pages")
Cc: stable@vger.kernel.org # 3.19+
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
4df2bf466a
commit
2eae9e4489
1 changed files with 4 additions and 1 deletions
|
@ -1981,5 +1981,8 @@ bool dm_pool_metadata_needs_check(struct dm_pool_metadata *pmd)
|
||||||
|
|
||||||
void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd)
|
void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd)
|
||||||
{
|
{
|
||||||
dm_tm_issue_prefetches(pmd->tm);
|
down_read(&pmd->root_lock);
|
||||||
|
if (!pmd->fail_io)
|
||||||
|
dm_tm_issue_prefetches(pmd->tm);
|
||||||
|
up_read(&pmd->root_lock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue