require_64bit_ops = 1;
}
+ InterlockedIncrement(&scp->activeRPCs);
lock_ReleaseWrite(&scp->rw);
/* now we're ready to do the store operation */
cm_MergeStatus(NULL, scp, &outStatus, &volSync, userp, reqp, CM_MERGEFLAG_STOREDATA);
} else {
+ InterlockedDecrement(&scp->activeRPCs);
if (code == CM_ERROR_SPACE)
_InterlockedOr(&scp->flags, CM_SCACHEFLAG_OUTOFSPACE);
else if (code == CM_ERROR_QUOTA)
require_64bit_ops = 1;
}
+ InterlockedIncrement(&scp->activeRPCs);
lock_ReleaseWrite(&scp->rw);
cm_AFSFidFromFid(&tfid, &scp->fid);
if (LargeIntegerGreaterThanOrEqualTo(t, scp->length))
_InterlockedAnd(&scp->mask, ~CM_SCACHEMASK_LENGTH);
cm_MergeStatus(NULL, scp, &outStatus, &volSync, userp, reqp, CM_MERGEFLAG_STOREDATA);
+ } else {
+ InterlockedDecrement(&scp->activeRPCs);
}
cm_SyncOpDone(scp, NULL, CM_SCACHESYNC_STOREDATA_EXCL);
return 0;
}
+ InterlockedIncrement(&scp->activeRPCs);
lock_ReleaseWrite(&scp->rw);
scp_locked = 0;
if (code == 0)
cm_MergeStatus(NULL, scp, &afsStatus, &volSync, userp, reqp, CM_MERGEFLAG_FETCHDATA);
+ else
+ InterlockedDecrement(&scp->activeRPCs);
return code;
}
require_64bit_ops = 1;
}
+ InterlockedIncrement(&scp->activeRPCs);
osi_Log2(afsd_logp, "cm_GetData: fetching data scp %p DV 0x%x", scp, scp->dataVersion);
#ifdef AFS_FREELANCE_CLIENT
if (code == 0)
cm_MergeStatus(NULL, scp, &afsStatus, &volSync, userp, reqp, CM_MERGEFLAG_FETCHDATA);
+ else
+ InterlockedDecrement(&scp->activeRPCs);
return code;
}