Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

aoe: allow user to disable target failure timeout

With this change, the aoe driver treats the value zero as special for
the aoe_deadsecs module parameter. Normally, this value specifies the
number of seconds during which the driver will continue to attempt
retransmits to an unresponsive AoE target. After aoe_deadsecs has
elapsed, the aoe driver marks the aoe device as "down" and fails all
I/O.

The new meaning of an aoe_deadsecs of zero is for the driver to
retransmit commands indefinitely.

Signed-off-by: Ed Cashin <ecashin@coraid.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Ed Cashin and committed by
Linus Torvalds
c450ba0f 71114ec4

+6 -2
+3 -1
Documentation/aoe/aoe.txt
··· 125 125 The aoe_deadsecs module parameter determines the maximum number of 126 126 seconds that the driver will wait for an AoE device to provide a 127 127 response to an AoE command. After aoe_deadsecs seconds have 128 - elapsed, the AoE device will be marked as "down". 128 + elapsed, the AoE device will be marked as "down". A value of zero 129 + is supported for testing purposes and makes the aoe driver keep 130 + trying AoE commands forever. 129 131 130 132 The aoe_maxout module parameter has a default of 128. This is the 131 133 maximum number of unresponded packets that will be sent to an AoE
+3 -1
drivers/block/aoe/aoecmd.c
··· 812 812 since = tsince_hr(f); 813 813 n = f->waited_total + since; 814 814 n /= USEC_PER_SEC; 815 - if (n > aoe_deadsecs && !(f->flags & FFL_PROBE)) { 815 + if (aoe_deadsecs 816 + && n > aoe_deadsecs 817 + && !(f->flags & FFL_PROBE)) { 816 818 /* Waited too long. Device failure. 817 819 * Hang all frames on first hash bucket for downdev 818 820 * to clean up.