From d26f5e158cffa313d0f504e7ba3afc1743b5d1ef Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Thu, 10 Jun 2010 14:47:24 -0400 Subject: [PATCH] unix cm activate mtu pings set an error code so idle dead time is enforced on sending. needed in order that MTU pings be activated. Change-Id: I8cf1ca81e6519b440fc679e85f327f338400c29a Reviewed-on: http://gerrit.openafs.org/2116 Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/afs/afs_analyze.c | 9 ++++++++- src/afs/afs_conn.c | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/afs/afs_analyze.c b/src/afs/afs_analyze.c index 5c6370291..dd3dd08cc 100644 --- a/src/afs/afs_analyze.c +++ b/src/afs/afs_analyze.c @@ -414,7 +414,10 @@ afs_Analyze(register struct afs_conn *aconn, afs_int32 acode, } } /* if (hm_retry_int ... */ else { - areq->networkError = 1; + if (acode == RX_MSGSIZE) + shouldRetry = 1; + else + areq->networkError = 1; } } return shouldRetry; @@ -456,6 +459,10 @@ afs_Analyze(register struct afs_conn *aconn, afs_int32 acode, acode = 455; #endif /* AFS_64BIT_CLIENT */ if ((acode < 0) && (acode != VRESTARTING)) { + if (acode == RX_MSGSIZE) { + shouldRetry = 1; + goto out; + } if (acode == RX_CALL_TIMEOUT) { serversleft = afs_BlackListOnce(areq, afid, tsp); if (afid) diff --git a/src/afs/afs_conn.c b/src/afs/afs_conn.c index 0af041756..4788d0960 100644 --- a/src/afs/afs_conn.c +++ b/src/afs/afs_conn.c @@ -293,7 +293,10 @@ afs_ConnBySA(struct srvAddr *sap, unsigned short aport, afs_int32 acell, if (service == 52) { rx_SetConnHardDeadTime(tc->id, afs_rx_harddead); } + /* set to a RX_CALL_TIMEOUT error to allow MTU retry to trigger */ + rx_SetServerConnIdleDeadErr(tc->id, RX_CALL_DEAD); rx_SetConnIdleDeadTime(tc->id, afs_rx_idledead); + rx_SetMsgsizeRetryErr(tc->id, RX_MSGSIZE); /* * Only do this for the base connection, not per-user. -- 2.39.5