- Fix DM thin to work as a swap device by using 'limit_swap_bios' DM
  target flag (initially added to allow swap to dm-crypt) to throttle
  the amount of outstanding swap bios.

- Fix DM crypt soft lockup warnings by calling cond_resched() from the
  cpu intensive loop in dmcrypt_write().

- Fix DM crypt to not access an uninitialized tasklet. This fix allows
  for consistent handling of IO completion, by _not_ needlessly punting
  to a workqueue when tasklets are not needed.

- Fix DM core's alloc_dev() initialization for DM stats to check for
  and propagate alloc_percpu() failure.
dm stats: check for and propagate alloc_percpu failure

Check alloc_precpu()'s return value and return an error from
dm_stats_init() if it fails. Update alloc_dev() to fail if
dm_stats_init() does.

Otherwise, a NULL pointer dereference will occur in dm_stats_cleanup()
even if dm-stats isn't being actively used.

Fixes: fd2ed4d25270 ("dm: add statistics support")
Cc: stable@vger.kernel.org
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
3 files changed