*/
if (code == CM_ERROR_NOSUCHFILE || code == CM_ERROR_BADFD || code == CM_ERROR_NOACCESS ||
code == CM_ERROR_QUOTA || code == CM_ERROR_SPACE || code == CM_ERROR_TOOBIG ||
- code == CM_ERROR_READONLY || code == CM_ERROR_NOSUCHPATH){
+ code == CM_ERROR_READONLY || code == CM_ERROR_NOSUCHPATH || code == EIO){
_InterlockedAnd(&bp->flags, ~CM_BUF_DIRTY);
_InterlockedOr(&bp->flags, CM_BUF_ERROR);
bp->dirty_offset = 0;
case CM_ERROR_TOOBIG:
case CM_ERROR_READONLY:
case CM_ERROR_NOSUCHPATH:
+ case EIO:
/*
* Apply the previous fatal error to this buffer.
* Do not waste the time attempting to store to
case CM_ERROR_ALLDOWN : s = "CM_ERROR_ALLDOWN"; break;
case CM_ERROR_TOOFEWBUFS : s = "CM_ERROR_TOOFEWBUFS"; break;
case CM_ERROR_TOOMANYBUFS : s = "CM_ERROR_TOOMANYBUFS"; break;
+ case UAEIO : s = "UAEIO"; break;
+ case EIO : s = "EIO"; break;
}
osi_Log2(afsd_logp, "cm_Analyze: ignoring error code 0x%x (%s)",
errorCode, s);
case CM_ERROR_TOOBIG:
case CM_ERROR_READONLY:
case CM_ERROR_NOSUCHPATH:
+ case EIO:
/*
* Apply the fatal error to this buffer.
*/
else if (code == ENOMEM) {
NTStatus = 0xC0000017L; /* Out of Memory */
}
+ else if (code == EIO) {
+ NTStatus = 0xC000016AL; /* Disk Operation Failure */
+ }
else if (code == CM_ERROR_RPC_MOREDATA) {
NTStatus = 0x80000005L; /* Buffer overflow */
}
case RXKADNOAUTH:
case CM_ERROR_QUOTA:
case CM_ERROR_LOCK_CONFLICT:
+ case EIO:
/*
* these are fatal errors. deliver what we can
* and halt.