kernel-ark/block
Russell King 56cf6504fc [BLOCK] Fix oops on removal of SD/MMC card
The block layer keeps a reference (driverfs_dev) to the struct
device associated with the block device, and uses it internally
for generating uevents in block_uevent.

Block device uevents include umounting the partition, which can
occur after the backing device has been removed.

Unfortunately, this reference is not counted.  This means that
if the struct device is removed from the device tree, the block
layers reference will become stale.

Guard against this by holding a reference to the struct device
in add_disk(), and only drop the reference when we're releasing
the gendisk kobject - in other words when we can be sure that no
further uevents will be generated for this block device.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Jens Axboe <axboe@suse.de>
2006-05-05 17:57:52 +01:00
..
as-iosched.c [PATCH 1/2] iosched: fix typo and barrier() 2006-04-18 09:44:06 +02:00
blktrace.c
cfq-iosched.c [PATCH] cfq: Further rbtree traversal and cfq_exit_queue() race fix 2006-04-18 19:18:31 +02:00
deadline-iosched.c
elevator.c [PATCH] block/elevator.c: remove unused exports 2006-04-20 15:45:22 +02:00
genhd.c [BLOCK] Fix oops on removal of SD/MMC card 2006-05-05 17:57:52 +01:00
ioctl.c
Kconfig
Kconfig.iosched
ll_rw_blk.c [PATCH] Remove __devinitdata from notifier block definitions 2006-04-26 08:27:50 -07:00
Makefile
noop-iosched.c
scsi_ioctl.c [SCSI] unify SCSI_IOCTL_SEND_COMMAND implementations 2006-04-13 10:13:15 -05:00