zram: fix race between zram_reset_device() and disksize_store()
authorMing Lei <ming.lei@redhat.com>
Mon, 25 Oct 2021 02:54:23 +0000 (10:54 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Nov 2021 20:43:12 +0000 (14:43 -0600)
commit6f1637795f2827d36aec9e0246487f5852e8abf7
treea91d5e4e8ea97e1cc5a4f04ce9c313260ac38b79
parent494dbee341e7a02529ce776ee9a5e0b7733ca280
zram: fix race between zram_reset_device() and disksize_store()

When the ->init_lock is released in zram_reset_device(), disksize_store()
can come in and try to allocate meta, but zram_reset_device() is freeing
free meta, so cause races.

Link: https://lore.kernel.org/linux-block/20210927163805.808907-1-mcgrof@kernel.org/T/#mc617f865a3fa2778e40f317ddf48f6447c20c073
Reported-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Link: https://lore.kernel.org/r/20211025025426.2815424-2-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/zram/zram_drv.c