remarkable-linux/drivers/block
Ed L. Cashin 68e0d42f39 aoe: handle multiple network paths to AoE device
A remote AoE device is something can process ATA commands and is identified by
an AoE shelf number and an AoE slot number.  Such a device might have more
than one network interface, and it might be reachable by more than one local
network interface.  This patch tracks the available network paths available to
each AoE device, allowing them to be used more efficiently.

Andrew Morton asked about the call to msleep_interruptible in the revalidate
function.  Yes, if a signal is pending, then msleep_interruptible will not
return 0.  That means we will not loop but will call aoenet_xmit with a NULL
skb, which is a noop.  If the system is too low on memory or the aoe driver is
too low on frames, then the user can hit control-C to interrupt the attempt to
do a revalidate.  I have added a comment to the code summarizing that.

Andrew Morton asked whether the allocation performed inside addtgt could use a
more relaxed allocation like GFP_KERNEL, but addtgt is called when the aoedev
lock has been locked with spin_lock_irqsave.  It would be nice to allocate the
memory under fewer restrictions, but targets are only added when the device is
being discovered, and if the target can't be added right now, we can try again
in a minute when then next AoE config query broadcast goes out.

Andrew Morton pointed out that the "too many targets" message could be printed
for failing GFP_ATOMIC allocations.  The last patch in this series makes the
messages more specific.

Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-08 09:22:31 -08:00
..
aoe aoe: handle multiple network paths to AoE device 2008-02-08 09:22:31 -08:00
paride fix ! versus & precedence in various places 2008-02-06 10:40:59 -08:00
amiflop.c
ataflop.c Atari floppy: Rename disk_type to atari_disk_type 2008-02-06 10:41:10 -08:00
brd.c rd: support XIP 2008-02-08 09:22:30 -08:00
cciss.c cciss: use upper_32_bits() macro to eliminate warnings 2008-02-06 10:41:03 -08:00
cciss.h
cciss_cmd.h
cciss_scsi.c drivers/block/: Spelling fixes 2008-02-03 17:09:38 +02:00
cciss_scsi.h cciss: update copyright notices 2007-10-29 11:33:05 +01:00
cpqarray.c blk_end_request: changing cpqarray (take 4) 2008-01-28 10:37:00 +01:00
cpqarray.h
cryptoloop.c SG: Change sg_set_page() to take length and offset argument 2007-10-24 11:20:47 +02:00
DAC960.c blk_end_request: changing DAC960 (take 4) 2008-01-28 10:36:04 +01:00
DAC960.h
floppy.c blk_end_request: changing floppy (take 4) 2008-01-28 10:36:21 +01:00
ida_cmd.h
ida_ioctl.h
Kconfig rd: support XIP 2008-02-08 09:22:30 -08:00
loop.c Allow auto-destruction of loop devices 2008-02-06 10:41:01 -08:00
Makefile rewrite rd 2008-02-08 09:22:30 -08:00
nbd.c blk_end_request: changing nbd (take 4) 2008-01-28 10:36:37 +01:00
pktcdvd.c fix ! versus & precedence in various places 2008-02-06 10:40:59 -08:00
ps2esdi.c
ps3disk.c blk_end_request: changing ps3disk (take 4) 2008-01-28 10:36:38 +01:00
smart1,2.h
sunvdc.c block/sunvdc.c:print_version() must be __devinit 2008-02-01 09:26:32 +01:00
swim3.c
sx8.c blk_end_request: changing sx8 (take 4) 2008-01-28 10:36:42 +01:00
ub.c USB: Remove unnecessary zeroing from ub 2008-02-01 14:34:47 -08:00
umem.c Cleanup umem driver: fix most checkpatch warnings, conform to kernel 2007-12-18 08:29:28 +01:00
umem.h drivers/block/umem: trim trailing whitespace 2007-10-10 09:25:59 +02:00
viodasd.c blk_end_request: changing viodasd (take 4) 2008-01-28 10:36:44 +01:00
virtio_blk.c virtio_blk: implement naming for vda-vdz,vdaa-vdzz,vdaaa-vdzzz 2008-02-04 23:50:11 +11:00
xd.c
xd.h
xen-blkfront.c blk_end_request: changing xen-blkfront (take 4) 2008-01-28 10:36:46 +01:00
xsysace.c [POWERPC] Xilinx: Update compatible to use values generated by BSP generator. 2008-02-06 10:23:21 -07:00
z2ram.c