dm cache: when reloading a discard bitset allow for a different discard block size
authorJoe Thornber <ejt@redhat.com>
Mon, 24 Nov 2014 14:06:22 +0000 (14:06 +0000)
committerMike Snitzer <snitzer@redhat.com>
Mon, 1 Dec 2014 16:30:10 +0000 (11:30 -0500)
commit3e2e1c3098fcc02369f0eea822d0a7914b691567
treed7ccfeacc50f7e3b730daad45f3ad11c70570153
parent2572629a1318eb9e13e70fa59756d7bcfb80319e
dm cache: when reloading a discard bitset allow for a different discard block size

The discard block size can change if the origin changes size or if an
old DM cache is upgraded from using a discard block size that was equal
to cache block size.

To fix this an extent of discarded blocks is established for the purpose
of translating the old discard block size to the new in-core discard
block size and set bits.  The old (potentially huge) discard bitset is
left ondisk until it is re-written using the new in-core information on
the next successful DM cache shutdown.

Fixes: 7ae34e777896 ("dm cache: improve discard support")
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-cache-target.c