dm cache: fix NULL pointer when switching from cleaner policy
authorJoe Thornber <ejt@redhat.com>
Fri, 9 Oct 2015 13:03:38 +0000 (14:03 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Oct 2015 21:37:53 +0000 (14:37 -0700)
commitd60cb61235d4df7eef0bb048664f0bbcc615dc71
tree8c3510860f6262a755e25a3689724ddcbf5c04b7
parentf7c7bb9f06eb2af9c03b29e019d45ad4e943f900
dm cache: fix NULL pointer when switching from cleaner policy

commit 2bffa1503c5c06192eb1459180fac4416575a966 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-cache-policy-cleaner.c