osi_LogSaveString(afsd_logp,addr));
}
- if (timeLeft > 2)
- retry = 1;
+ retry = 1;
}
else if (errorCode >= -64 && errorCode < 0) {
/* mark server as down */
}
/* If not allowed to retry, don't */
- if (!forcing_new && (reqp->flags & CM_REQ_NORETRY))
+ if (!forcing_new && (reqp->flags & CM_REQ_NORETRY) && (errorCode != RX_MSGSIZE))
retry = 0;
else if (retry && dead_session)
retry = 0;
error = et_to_sys_error(error);
if (error == RX_CALL_DEAD ||
- error == RX_CALL_TIMEOUT)
+ error == RX_CALL_TIMEOUT ||
+ error == RX_MSGSIZE)
error = CM_ERROR_RETRY;
else if (error < 0)
error = CM_ERROR_UNKNOWN;
+ else if (error == EINVAL)
+ error = CM_ERROR_INVAL;
else if (error == EROFS)
error = CM_ERROR_READONLY;
else if (error == EACCES)
error = et_to_sys_error(error);
if (error == RX_CALL_DEAD ||
- error == RX_CALL_TIMEOUT)
+ error == RX_CALL_TIMEOUT ||
+ error == RX_MSGSIZE)
error = CM_ERROR_RETRY;
else if (error == VNOVNODE)
error = CM_ERROR_BADFD;
error = CM_ERROR_NOACCESS;
else if (error == ENOENT)
error = CM_ERROR_NOSUCHFILE;
+ else if (error == EINVAL)
+ error = CM_ERROR_INVAL;
else if (error == ENOTEMPTY
|| error == 17 /* AIX */
|| error == 66 /* SunOS 4, Digital UNIX */
error = et_to_sys_error(error);
if (error == RX_CALL_DEAD ||
- error == RX_CALL_TIMEOUT)
+ error == RX_CALL_TIMEOUT ||
+ error == RX_MSGSIZE)
error = CM_ERROR_RETRY;
else if (error == RX_RESTARTING)
error = CM_ERROR_ALLBUSY;
else if (error < 0)
error = CM_ERROR_UNKNOWN;
+ else if (error == EINVAL)
+ error = CM_ERROR_INVAL;
else if (error == VL_NOENT || error == VL_BADNAME)
error = CM_ERROR_NOSUCHVOLUME;
return error;