Chenwandun
f7daefe423
zram: fix race between backing_dev_show and backing_dev_store
...
CPU0: CPU1:
backing_dev_show backing_dev_store
...... ......
file = zram->backing_dev;
down_read(&zram->init_lock); down_read(&zram->init_init_lock)
file_path(file, ...); zram->backing_dev = backing_dev;
up_read(&zram->init_lock); up_read(&zram->init_lock);
gets the value of zram->backing_dev too early in backing_dev_show, which
resultin the value being NULL at the beginning, and not NULL later.
backtrace:
d_path+0xcc/0x174
file_path+0x10/0x18
backing_dev_show+0x40/0xb4
dev_attr_show+0x20/0x54
sysfs_kf_seq_show+0x9c/0x10c
kernfs_seq_show+0x28/0x30
seq_read+0x184/0x488
kernfs_fop_read+0x5c/0x1a4
__vfs_read+0x44/0x128
vfs_read+0xa0/0x138
SyS_read+0x54/0xb4
Link: http://lkml.kernel.org/r/1571046839-16814-1-git-send-email-chenwandun@huawei.com
Signed-off-by: Chenwandun <chenwandun@huawei.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: <stable@vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-10-19 06:32:32 -04:00
..
aoe
block: aoe: Fix kernel crash due to atomic sleep when exiting
2019-08-08 07:29:02 -06:00
drbd
augmented rbtree: add new RB_DECLARE_CALLBACKS_MAX macro
2019-09-25 17:51:39 -07:00
mtip32xx
block: mtip32xx: Remove call to memset after dma_alloc_coherent
2019-06-29 09:42:50 -06:00
paride
paride/pcd: need to check if cd->disk is null in pcd_detect
2019-09-04 07:04:37 -06:00
rsxx
rsxx: don't call dma_set_max_seg_size
2019-06-05 13:18:39 -06:00
xen-blkback
xen/blkback: fix memory leaks
2019-08-12 08:18:37 -06:00
zram
zram: fix race between backing_dev_show and backing_dev_store
2019-10-19 06:32:32 -04:00
amiflop.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
ataflop.c
ataflop: Mark expected switch fall-through
2019-07-29 15:24:58 -06:00
brd.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
cryptoloop.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 30
2019-05-24 17:27:10 +02:00
floppy.c
floppy: fix usercopy direction
2019-08-09 07:41:36 -06:00
Kconfig
docs: blockdev: add it to the admin-guide
2019-07-15 11:03:01 -03:00
loop.c
loop: change queue block size to match when using DIO
2019-10-01 09:36:01 -06:00
loop.h
block/loop: Use global lock for ioctl() operation.
2018-11-08 06:30:11 -07:00
Makefile
nbd.c
nbd: fix possible sysfs duplicate warning
2019-10-10 09:44:56 -06:00
null_blk.h
null_blk: format pr_* logs with pr_fmt
2019-09-16 08:38:29 -06:00
null_blk_main.c
null_blk: format pr_* logs with pr_fmt
2019-09-16 08:38:29 -06:00
null_blk_zoned.c
null_blk: Fix zoned command return code
2019-10-09 21:00:20 -06:00
pktcdvd.c
pktcdvd: remove warning on attempting to register non-passthrough dev
2019-09-22 10:01:05 -06:00
ps3disk.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 164
2019-05-30 11:26:38 -07:00
ps3vram.c
block/ps3vram: Use %llu to format sector_t after LBDAF removal
2019-06-13 03:17:50 -06:00
rbd.c
rbd: cancel lock_dwork if the wait is interrupted
2019-10-15 17:43:15 +02:00
rbd_types.h
rbd: support for object-map and fast-diff
2019-07-08 14:01:45 +02:00
skd_main.c
Linux 5.2-rc6
2019-07-01 08:16:08 -06:00
skd_s1120.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497
2019-06-19 17:09:53 +02:00
sunvdc.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
swim.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
swim3.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
swim_asm.S
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sx8.c
sx8: use a per-host tag_set
2018-11-09 08:14:14 -07:00
umem.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 349
2019-06-05 17:37:08 +02:00
umem.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 348
2019-06-05 17:37:08 +02:00
virtio_blk.c
treewide: Add SPDX license identifier for more missed files
2019-05-21 10:50:45 +02:00
xen-blkfront.c
xen-blkfront: switch kcalloc to kvcalloc for large array allocation
2019-06-03 22:16:19 -04:00
xsysace.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
z2ram.c