Skip to contentSkip to conversation

Patch "dm thin metadata: don't issue prefetches if a transaction abort has failed" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Apr 9, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

dm thin metadata: don't issue prefetches if a transaction abort has failed

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
dm-thin-metadata-don-t-issue-prefetches-if-a-transaction-abort-has-failed.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 2eae9e4489b4cf83213fa3bd508b5afca3f01780 Mon Sep 17 00:00:00 2001

From: Joe Thornber <[email protected]>
Date: Tue, 1 Mar 2016 10:58:44 +0000
Subject: dm thin metadata: don't issue prefetches if a transaction abort has failed

From: Joe Thornber <[email protected]>

commit 2eae9e4489b4cf83213fa3bd508b5afca3f01780 upstream.

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")
---
 drivers/md/dm-thin-metadata.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/md/dm-thin-metadata.c +4 -1
@@ -1943,5 +1943,8 @@ bool dm_pool_metadata_needs_check(struct
 
 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);
 }

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/dm-thin-metadata-don-t-issue-prefetches-if-a-transaction-abort-has-failed.patch queue-4.4/dm-cache-make-sure-every-metadata-function-checks-fail_io.patch