linux/drivers/block
Minchan Kim 4036c69bc4 zram: close udev startup race condition as default groups
commit fef912bf86 upstream.
commit 98af4d4df8 upstream.

I got a report from Howard Chen that he saw zram and sysfs race(ie,
zram block device file is created but sysfs for it isn't yet)
when he tried to create new zram devices via hotadd knob.

v4.20 kernel fixes it by [1, 2] but it's too large size to merge
into -stable so this patch fixes the problem by registering defualt
group by Greg KH's approach[3].

This patch should be applied to every stable tree [3.16+] currently
existing from kernel.org because the problem was introduced at 2.6.37
by [4].

[1] fef912bf86, block: genhd: add 'groups' argument to device_add_disk
[2] 98af4d4df8, zram: register default groups with device_add_disk()
[3] http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
[4] 33863c21e6, Staging: zram: Replace ioctls with sysfs interface

Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Hannes Reinecke <hare@suse.com>
Tested-by: Howard Chen <howardsoc@google.com>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2018-11-27 16:08:01 +01:00
..
aoe Revert "block: remove artifical max_hw_sectors cap" 2015-08-18 13:21:13 -07:00
drbd drbd: fix access after free 2018-07-11 16:03:48 +02:00
mtip32xx Revert "mtip32xx: use runtime tag to initialize command header" 2018-04-08 11:52:02 +02:00
paride cdrom: do not call check_disk_change() inside cdrom_open() 2018-05-30 07:49:13 +02:00
rsxx block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
xen-blkback xen-blkback: don't leak stack data via response ring 2017-11-21 09:21:17 +01:00
zram zram: close udev startup race condition as default groups 2018-11-27 16:08:01 +01:00
amiflop.c
ataflop.c ataflop: fix error handling during setup 2018-11-21 09:27:31 +01:00
brd.c brd: Fix discard request processing 2016-04-12 09:08:53 -07:00
cciss_cmd.h
cciss_scsi.c
cciss_scsi.h
cciss.c
cciss.h
cpqarray.c
cpqarray.h
cryptoloop.c
DAC960.c
DAC960.h
floppy.c floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl 2018-10-10 08:52:07 +02:00
hd.c
ida_cmd.h
ida_ioctl.h
Kconfig nvme: move to a new drivers/nvme/host directory 2015-10-09 10:40:37 -06:00
loop.c loop: remember whether sysfs_create_group() was done 2018-07-17 11:31:46 +02:00
loop.h loop: remember whether sysfs_create_group() was done 2018-07-17 11:31:46 +02:00
Makefile nvme: move to a new drivers/nvme/host directory 2015-10-09 10:40:37 -06:00
mg_disk.c
nbd.c nbd: ratelimit error msgs after socket close 2016-05-11 11:21:10 +02:00
null_blk.c null_blk: use async queue restart helper 2015-12-28 13:07:09 -07:00
osdblk.c mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
pktcdvd.c pktcdvd: Fix pkt_setup_dev() error path 2018-02-16 20:09:47 +01:00
ps3disk.c
ps3vram.c block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
rbd_types.h
rbd.c rbd: set max_segments to USHRT_MAX 2018-01-17 09:35:30 +01:00
skd_main.c skd: Submit requests to firmware before triggering the doorbell 2017-09-27 11:00:14 +02:00
skd_s1120.h
smart1,2.h
sunvdc.c
swim_asm.S
swim.c swim: fix cleanup on setup error 2018-11-21 09:27:31 +01:00
swim3.c
sx8.c
umem.c block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
umem.h
virtio_blk.c virtio_blk: fix panic in initialization error path 2017-08-11 09:08:58 -07:00
xen-blkfront.c xen: features for 4.4-rc0 2015-11-04 17:32:42 -08:00
xsysace.c
z2ram.c