diff options
author | Ed Cashin <ecashin@coraid.com> | 2012-12-17 19:04:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-17 20:15:25 -0500 |
commit | c450ba0fc12153cb5d3fd582b4ec82c75217a989 (patch) | |
tree | 2acf7807aed922a2bb444b8b4f67d40961372331 | |
parent | 71114ec45f09eb6ef6f9d41c98d4ab6455086e58 (diff) |
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>
-rw-r--r-- | Documentation/aoe/aoe.txt | 4 | ||||
-rw-r--r-- | drivers/block/aoe/aoecmd.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Documentation/aoe/aoe.txt b/Documentation/aoe/aoe.txt index bfc9cb19abcd..c71487d399d1 100644 --- a/Documentation/aoe/aoe.txt +++ b/Documentation/aoe/aoe.txt | |||
@@ -125,7 +125,9 @@ DRIVER OPTIONS | |||
125 | The aoe_deadsecs module parameter determines the maximum number of | 125 | The aoe_deadsecs module parameter determines the maximum number of |
126 | seconds that the driver will wait for an AoE device to provide a | 126 | seconds that the driver will wait for an AoE device to provide a |
127 | response to an AoE command. After aoe_deadsecs seconds have | 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 | The aoe_maxout module parameter has a default of 128. This is the | 132 | The aoe_maxout module parameter has a default of 128. This is the |
131 | maximum number of unresponded packets that will be sent to an AoE | 133 | maximum number of unresponded packets that will be sent to an AoE |
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index da360f95c8ea..abf4ad2d3e18 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
@@ -812,7 +812,9 @@ rexmit_timer(ulong vp) | |||
812 | since = tsince_hr(f); | 812 | since = tsince_hr(f); |
813 | n = f->waited_total + since; | 813 | n = f->waited_total + since; |
814 | n /= USEC_PER_SEC; | 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 | /* Waited too long. Device failure. | 818 | /* Waited too long. Device failure. |
817 | * Hang all frames on first hash bucket for downdev | 819 | * Hang all frames on first hash bucket for downdev |
818 | * to clean up. | 820 | * to clean up. |