return code;
}
+/* Must be called with scp->rw held */
+long buf_InvalidateBuffers(cm_scache_t * scp)
+{
+ cm_buf_t * bp;
+ afs_uint32 i;
+ int found = 0;
+
+ lock_AssertAny(&scp->rw);
+
+ i = BUF_FILEHASH(&scp->fid);
+
+ lock_ObtainRead(&buf_globalLock);
+
+ for (bp = cm_data.buf_fileHashTablepp[i]; bp; bp = bp->fileHashp) {
+ if (cm_FidCmp(&bp->fid, &scp->fid) == 0) {
+ bp->dataVersion = CM_BUF_VERSION_BAD;
+ found = 1;
+ }
+ }
+ lock_ReleaseRead(&buf_globalLock);
+
+ if (found)
+ return 0;
+ else
+ return ENOENT;
+}
+
/* Must be called with scp->rw held */
long buf_ForceDataVersion(cm_scache_t * scp, afs_uint64 fromVersion, afs_uint64 toVersion)
{
extern long buf_CleanDirtyBuffers(cm_scache_t *scp);
+extern long buf_InvalidateBuffers(cm_scache_t * scp);
+
extern long buf_RDRBuffersExist(cm_fid_t *fidp);
extern long buf_ClearRDRFlag(cm_scache_t *scp, char * reason);