dscp->fileType, AFS_INVALIDATE_DATA_VERSION);
if (scp) {
- cm_ReleaseSCache(scp);
if (code == 0) {
lock_ObtainWrite(&scp->rw);
if (--scp->linkCount == 0) {
}
cm_DiscardSCache(scp);
lock_ReleaseWrite(&scp->rw);
- if (RDR_Initialized && !(reqp->flags & CM_REQ_SOURCE_REDIR) &&
- !RDR_InvalidateObject(scp->fid.cell, scp->fid.volume, scp->fid.vnode,
- scp->fid.unique, scp->fid.hash,
- scp->fileType, AFS_INVALIDATE_DELETED))
- buf_ClearRDRFlag(scp, "unlink");
+ if (RDR_Initialized && !(reqp->flags & CM_REQ_SOURCE_REDIR))
+ RDR_InvalidateObject(scp->fid.cell, scp->fid.volume, scp->fid.vnode,
+ scp->fid.unique, scp->fid.hash,
+ scp->fileType, AFS_INVALIDATE_DELETED);
}
+ cm_ReleaseSCache(scp);
}
done:
cm_EndDirOp(&dirop);
if (scp) {
- cm_ReleaseSCache(scp);
if (code == 0) {
lock_ObtainWrite(&scp->rw);
scp->flags |= CM_SCACHEFLAG_DELETED;
cm_RemoveSCacheFromHashTable(scp);
lock_ReleaseWrite(&cm_scacheLock);
lock_ReleaseWrite(&scp->rw);
- if (RDR_Initialized && !(reqp->flags & CM_REQ_SOURCE_REDIR) &&
- !RDR_InvalidateObject(scp->fid.cell, scp->fid.volume, scp->fid.vnode,
- scp->fid.unique, scp->fid.hash,
- scp->fileType, AFS_INVALIDATE_DELETED))
- buf_ClearRDRFlag(scp, "rmdir");
+ if (RDR_Initialized && !(reqp->flags & CM_REQ_SOURCE_REDIR))
+ RDR_InvalidateObject(scp->fid.cell, scp->fid.volume, scp->fid.vnode,
+ scp->fid.unique, scp->fid.hash,
+ scp->fileType, AFS_INVALIDATE_DELETED);
}
+ cm_ReleaseSCache(scp);
}
done: