]> git.baikalelectronics.ru Git - kernel.git/commit
block: don't propagate unlisted DISK_EVENTs to userland
authorTejun Heo <tj@kernel.org>
Thu, 21 Apr 2011 17:43:58 +0000 (19:43 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Thu, 21 Apr 2011 17:43:58 +0000 (19:43 +0200)
commit7f2c3e1923c19a8b6912d5d87ee5dd9e35702899
tree121d1b65615faf98e3c77f066b50527275d4b4c3
parenta5ee04b4d68038050186b42ebd6a963101e9ca14
block: don't propagate unlisted DISK_EVENTs to userland

DISK_EVENT_MEDIA_CHANGE is used for both userland visible event and
internal event for revalidation of removeable devices.  Some legacy
drivers don't implement proper event detection and continuously
generate events under certain circumstances.  For example, ide-cd
generates media changed continuously if there's no media in the drive,
which can lead to infinite loop of events jumping back and forth
between the driver and userland event handler.

This patch updates disk event infrastructure such that it never
propagates events not listed in disk->events to userland.  Those
events are processed the same for internal purposes but uevent
generation is suppressed.

This also ensures that userland only gets events which are advertised
in the @events sysfs node lowering risk of confusion.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/genhd.c