Files
linux/drivers/staging
Jiang Liu 6349a112f4 zram: use zram->lock to protect zram_free_page() in swap free notify path
commit 57ab048532 upstream.

zram_slot_free_notify() is free-running without any protection from
concurrent operations. So there are race conditions between
zram_bvec_read()/zram_bvec_write() and zram_slot_free_notify(),
and possible consequences include:
1) Trigger BUG_ON(!handle) on zram_bvec_write() side.
2) Access to freed pages on zram_bvec_read() side.
3) Break some fields (bad_compress, good_compress, pages_stored)
   in zram->stats if the swap layer makes concurrently call to
   zram_slot_free_notify().

So enhance zram_slot_free_notify() to acquire writer lock on zram->lock
before calling zram_free_page().

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-11 18:35:23 -07:00
..
2013-05-05 00:15:43 -04:00
2013-05-05 00:15:43 -04:00
2013-05-30 21:14:30 +09:00
2013-05-05 00:15:43 -04:00
2013-04-09 14:13:20 -04:00
2013-05-05 00:15:43 -04:00
2013-05-05 00:15:43 -04:00
2013-05-05 00:15:43 -04:00
2013-04-19 11:15:20 -07:00