aoe: failover remote interface based on aoe_deadsecs parameter
The aoe_deadsecs module parameter allows the user to specify a hard limit on the number of seconds an AoE command can be retransmitted before the AoE block device is considered to have failed. Using aoe_deadsecs to determine the time we try using a different remote interface helps to ensure that the hard limit is not reached before we've tried to recover by sending to a different remote port. As a data storage target, the AoE target is unambiguously identified by its {major, minor} AoE address tuple, and an AoE target can have multiple MAC addresses. However, note that "target" in the driver code and comments means a {major, minor, MAC address} tuple, as in "somewhere to send packets". Signed-off-by: Ed Cashin <ecashin@coraid.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3f0f013374
commit
d54d35ac66
@ -96,7 +96,6 @@ enum {
|
||||
TIMERTICK = HZ / 10,
|
||||
MINTIMER = HZ >> 2,
|
||||
MAXTIMER = HZ << 1,
|
||||
HELPWAIT = 20,
|
||||
};
|
||||
|
||||
struct buf {
|
||||
|
@ -633,11 +633,9 @@ rexmit_timer(ulong vp)
|
||||
list_del(pos);
|
||||
|
||||
t = f->t;
|
||||
if (n > HELPWAIT) {
|
||||
/* see if another target can help */
|
||||
if (d->ntargets > 1)
|
||||
d->htgt = t;
|
||||
}
|
||||
if (n > aoe_deadsecs/2)
|
||||
d->htgt = t; /* see if another target can help */
|
||||
|
||||
if (t->nout == t->maxout) {
|
||||
if (t->maxout > 1)
|
||||
t->maxout--;
|
||||
|
Loading…
Reference in New Issue
Block a user