diff options
author | Joe Thornber <ejt@redhat.com> | 2015-10-09 14:03:38 +0100 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-10-27 22:14:27 -0400 |
commit | d2adffd701eefc29c06cd10494e4bdb2bc70fe3b (patch) | |
tree | 6ae1ac3726e44d621586c63997e8482080347d6f | |
parent | 5b0d0df8f71b1f8565ba0a66f9c7e431cc3b4cbc (diff) | |
download | lwn-d2adffd701eefc29c06cd10494e4bdb2bc70fe3b.tar.gz lwn-d2adffd701eefc29c06cd10494e4bdb2bc70fe3b.zip |
dm cache: fix NULL pointer when switching from cleaner policy
[ Upstream commit 2bffa1503c5c06192eb1459180fac4416575a966 ]
The cleaner policy doesn't make use of the per cache block hint space in
the metadata (unlike the other policies). When switching from the
cleaner policy to mq or smq a NULL pointer crash (in dm_tm_new_block)
was observed. The crash was caused by bugs in dm-cache-metadata.c
when trying to skip creation of the hint btree.
The minimal fix is to change hint size for the cleaner policy to 4 bytes
(only hint size supported).
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
-rw-r--r-- | drivers/md/dm-cache-policy-cleaner.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/dm-cache-policy-cleaner.c b/drivers/md/dm-cache-policy-cleaner.c index b04d1f904d07..2eca9084defe 100644 --- a/drivers/md/dm-cache-policy-cleaner.c +++ b/drivers/md/dm-cache-policy-cleaner.c @@ -434,7 +434,7 @@ static struct dm_cache_policy *wb_create(dm_cblock_t cache_size, static struct dm_cache_policy_type wb_policy_type = { .name = "cleaner", .version = {1, 0, 0}, - .hint_size = 0, + .hint_size = 4, .owner = THIS_MODULE, .create = wb_create }; |