}
lock_ReleaseWrite(&scp->rw);
- dwResultBufferLength = (DWORD)(sizeof( AFSSetFileExtentsCB) + sizeof( AFSSetFileExtentsCB) * (length.QuadPart / cm_data.blockSize + 1));
+ dwResultBufferLength = (DWORD)(sizeof( AFSSetFileExtentsCB) + sizeof( AFSFileExtentCB) * (length.QuadPart / cm_data.blockSize + 1));
pResultCB = (AFSSetFileExtentsCB *)malloc( dwResultBufferLength );
if (!pResultCB)
return CM_ERROR_RETRY;
case RXKADNOAUTH:
case CM_ERROR_QUOTA:
case CM_ERROR_LOCK_CONFLICT:
+ case EIO:
/*
* these are fatal errors. deliver what we can
* and halt.
pExtent->CacheOffset.LowPart);
osi_Log5( afsd_logp, "... belongs to bp 0x%p vol 0x%x vno 0x%x foffset 0x%x:%x",
wbp, wbp->fid.volume, wbp->fid.vnode, wbp->offset.HighPart, wbp->offset.LowPart);
-#ifdef DEBUG
- DebugBreak();
-#endif
}
buf_Release(bufp);
}
}
if (scp) {
- if (ReleaseExtentsCB->Flags & AFS_EXTENT_FLAG_FLUSH) {
+ if (deleted) {
+ code = 0;
+ } else if (ReleaseExtentsCB->Flags & AFS_EXTENT_FLAG_FLUSH) {
lock_ObtainWrite(&scp->rw);
code = cm_SyncOp(scp, NULL, userp, &req, PRSFS_WRITE,
CM_SCACHESYNC_NEEDCALLBACK | CM_SCACHESYNC_GETSTATUS);
osi_Log2(afsd_logp, "... coffset 0x%x:%x",
pExtent->CacheOffset.HighPart,
pExtent->CacheOffset.LowPart);
-#ifdef DEBUG
- DebugBreak();
-#endif
- if (!deleted) {
+
+ if (!deleted) {
buf_SetDirty(bufp, &req, pExtent->DirtyOffset, pExtent->DirtyLength, userp);
dirty++;
}
wbp, wbp->fid.volume, wbp->fid.vnode, wbp->offset.HighPart, wbp->offset.LowPart);
else
osi_Log0(afsd_logp, "... coffset cannot be found");
-#ifdef DEBUG
- DebugBreak();
-#endif
}
buf_Release(bufp);
} else {