Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d54d35ac authored by Ed L. Cashin's avatar Ed L. Cashin Committed by Linus Torvalds
Browse files

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: default avatarEd Cashin <ecashin@coraid.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3f0f0133
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -96,7 +96,6 @@ enum {
	TIMERTICK = HZ / 10,
	MINTIMER = HZ >> 2,
	MAXTIMER = HZ << 1,
	HELPWAIT = 20,
};

struct buf {
+3 −5
Original line number Diff line number Diff line
@@ -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--;