mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
dm thin metadata: don't issue prefetches if a transaction abort has failed
commit2eae9e4489upstream. 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") Signed-off-by: Joe Thornber <ejt@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5504a47088
commit
291e2b3900
@@ -1943,5 +1943,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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user