block: don't block events on excl write for non-optical devices
authorTejun Heo <tj@kernel.org>
Thu, 21 Apr 2011 18:54:46 +0000 (20:54 +0200)
committerSteve Conklin <sconklin@canonical.com>
Fri, 15 Jul 2011 17:20:51 +0000 (12:20 -0500)
commit4282554cca2b15418db95c5e1c6e0ccfbddcde3b
tree05f45027512a0dcc7317363a2968701136be2794
parent7ae10a3f827d414efb92e1deb34c8bd206d23be8
block: don't block events on excl write for non-optical devices

BugLink: http://bugs.launchpad.net/bugs/793702

commit d4dc210f69bcb0b4bef5a83b1c323817be89bad1 upstream.

Disk event code automatically blocks events on excl write.  This is
primarily to avoid issuing polling commands while burning is in
progress.  This behavior doesn't fit other types of devices with
removeable media where polling commands don't have adverse side
effects and door locking usually doesn't exist.

This patch introduces new genhd flag which controls the auto-blocking
behavior and uses it to enable auto-blocking only on optical devices.

Note for stable: 2.6.38 and later only

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/block/paride/pcd.c
drivers/cdrom/viocd.c
drivers/ide/ide-cd.c
drivers/scsi/sr.c
fs/block_dev.c
include/linux/genhd.h