linux/drivers/block/aoe
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.h aoe: allocate unused request_queue for sysfs 2009-09-09 14:10:18 +02:00
aoeblk.c aoe: end barrier bios with EOPNOTSUPP 2009-09-14 08:24:52 +02:00
aoechr.c Driver Core: aoe: add nodename for aoe devices 2009-06-15 21:30:26 -07:00
aoecmd.c aoe: Remove superfluous clearing of skb fields in new_skb(). 2009-05-27 17:09:44 -07:00
aoedev.c aoe: allocate unused request_queue for sysfs 2009-09-09 14:10:18 +02:00
aoemain.c aoe: Use SKB interfaces for list management instead of home-grown stuff. 2008-09-21 22:36:49 -07:00
aoenet.c net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00