• T
    block: don't propagate unlisted DISK_EVENTs to userland · 7c88a168
    Tejun Heo 提交于
    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: NTejun Heo <tj@kernel.org>
    Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
    7c88a168
genhd.c 42.4 KB