linux/drivers/block
Ed Cashin 18d8217bc4 aoe: end barrier bios with EOPNOTSUPP
BugLink: http://bugzilla.kernel.org/show_bug.cgi?id=13942

Bruno Premont noticed that aoe throws a BUG during umount of an XFS in
2.6.31:

[ 5259.349897] aoe: bi_io_vec is NULL
[ 5259.349940] ------------[ cut here ]------------
[ 5259.349958] kernel BUG at /usr/src/linux-2.6/drivers/block/aoe/aoeblk.c:177!
[ 5259.349990] invalid opcode: 0000 [#1]

The bio in question is a barrier.  Jens Axboe suggested that such bios
need to be recognized and ended with -EOPNOTSUPP by any driver that
provides its own ->make_request_fn handler and does not handle
barriers.

In testing the changes below eliminate the BUG.

(Better would be real barrier support, something that Ed says he'll add
for later in the .32 cycle. For now, this at least gets rid of a bug
with crashing on an empty barrier. Jens)

Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-09-14 08:24:52 +02:00
..
aoe aoe: end barrier bios with EOPNOTSUPP 2009-09-14 08:24:52 +02:00
paride block: use printk_once 2009-09-11 14:34:33 +02:00
amiflop.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
ataflop.c ataflop: adjust NULL test 2009-07-17 15:29:58 +09:00
brd.c ramdisk: remove long-deprecated "ramdisk=" boot-time parameter 2009-06-10 23:07:15 +02:00
cciss.c cciss: memory leak in cciss_init_one() 2009-09-11 14:34:33 +02:00
cciss.h cciss: Remove no longer needed sendcmd reject processing code 2009-06-09 05:47:43 +02:00
cciss_cmd.h cciss: Ignore stale commands after reboot 2009-07-03 21:06:45 +02:00
cciss_scsi.c cciss: decode unit attention in SCSI error handling code 2009-06-09 05:47:44 +02:00
cciss_scsi.h
cpqarray.c block: Do away with the notion of hardsect_size 2009-05-22 23:22:54 +02:00
cpqarray.h
cryptoloop.c
DAC960.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
DAC960.h
floppy.c floppy: fix lock imbalance 2009-06-30 18:56:01 -07:00
hd.c hd: stop defining MAJOR_NR 2009-06-18 09:56:20 +02:00
ida_cmd.h
ida_ioctl.h
Kconfig osdblk: a Linux block device for OSD objects 2009-06-24 12:25:02 +03:00
loop.c bio: first step in sanitizing the bio->bi_rw flag testing 2009-09-11 14:33:31 +02:00
Makefile osdblk: a Linux block device for OSD objects 2009-06-24 12:25:02 +03:00
mg_disk.c mg_disk: Add missing ready status check on mg_write() 2009-07-28 08:57:33 +02:00
nbd.c block: implement and enforce request peek/start/fetch 2009-05-11 09:52:18 +02:00
osdblk.c osdblk: Adjust queue limits to lower device's limits 2009-06-24 12:27:01 +03:00
pktcdvd.c Fix congestion_wait() sync/async vs read/write confusion 2009-07-10 20:31:53 +02:00
ps3disk.c block/ps3: remove driver_data direct access of struct device 2009-06-15 21:30:28 -07:00
ps3vram.c block/ps3: remove driver_data direct access of struct device 2009-06-15 21:30:28 -07:00
smart1,2.h
sunvdc.c block: implement and enforce request peek/start/fetch 2009-05-11 09:52:18 +02:00
swim.c block: implement and enforce request peek/start/fetch 2009-05-11 09:52:18 +02:00
swim3.c block: implement and enforce request peek/start/fetch 2009-05-11 09:52:18 +02:00
swim_asm.S m68k: mac - Add SWIM floppy support 2009-03-26 21:15:27 +01:00
sx8.c block: use printk_once 2009-09-11 14:34:33 +02:00
ub.c block: Do away with the notion of hardsect_size 2009-05-22 23:22:54 +02:00
umem.c umem: fix request_queue lock warning 2009-04-24 08:54:21 +02:00
umem.h
viodasd.c block: use printk_once 2009-09-11 14:34:33 +02:00
virtio_blk.c Merge branch 'tj-block-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc 2009-07-22 10:06:33 -07:00
xd.c block: implement and enforce request peek/start/fetch 2009-05-11 09:52:18 +02:00
xd.h
xen-blkfront.c xen block: remove driver_data direct access of struct device 2009-06-15 21:30:27 -07:00
xsysace.c Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
z2ram.c z2ram: Small cleanup for z2ram.c 2009-07-15 11:27:40 +09:00