FAILED: patch "[PATCH] dm cache metadata: ignore hints array being too small during" failed to apply to 3.18-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 3.18-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
4561ffca88c546f96367f94b8f1e4715a9c62314Mon Sep 17 00:00:00 2001
From: Joe Thornber <[email protected]>
Date: Mon, 24 Sep 2018 16:19:30 -0400
Subject: [PATCH] dm cache metadata: ignore hints array being too small during
resize
Commit fd2fa9541 ("dm cache metadata: save in-core policy_hint_size to on-disk superblock") enabled previously written policy hints to be used after a cache is reactivated. But in doing so the cache metadata's hint array was left exposed to out of bounds access because on resize the metadata's on-disk hint array wasn't ever extended.
Fix this by ignoring that there are no on-disk hints associated with the newly added cache blocks. An expanded on-disk hint array is later rewritten upon the next clean shutdown of the cache.
drivers/md/dm-cache-metadata.c +2 -2
@@ -1455,8 +1455,8 @@ static int __load_mappings(struct dm_cache_metadata *cmd,if (hints_valid) { r =dm_array_cursor_next (&cmd->hint_cursor);if (r) { -DMERR ("dm_array_cursor_next for hint failed" ); - goto out; +dm_array_cursor_end (&cmd->hint_cursor); + hints_valid = false; } }