mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08: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
@ -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)
|
||||
{
|
||||
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 New Issue
Block a user