diff options
author | Mike Snitzer <snitzer@redhat.com> | 2018-09-25 20:56:02 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2018-10-04 15:20:52 -0400 |
commit | 5d07384a666d4b2f781dc056bfeec2c27fbdf383 (patch) | |
tree | 74d8d0932b0abc02137d00d989418f7711a745d7 /drivers/amba | |
parent | 4561ffca88c546f96367f94b8f1e4715a9c62314 (diff) |
dm cache: fix resize crash if user doesn't reload cache table
A reload of the cache's DM table is needed during resize because
otherwise a crash will occur when attempting to access smq policy
entries associated with the portion of the cache that was recently
extended.
The reason is cache-size based data structures in the policy will not be
resized, the only way to safely extend the cache is to allow for a
proper cache policy initialization that occurs when the cache table is
loaded. For example the smq policy's space_init(), init_allocator(),
calc_hotspot_params() must be sized based on the extended cache size.
The fix for this is to disallow cache resizes of this pattern:
1) suspend "cache" target's device
2) resize the fast device used for the cache
3) resume "cache" target's device
Instead, the last step must be a full reload of the cache's DM table.
Fixes: 66a636356 ("dm cache: add stochastic-multi-queue (smq) policy")
Cc: stable@vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/amba')
0 files changed, 0 insertions, 0 deletions