mirror of
https://git.openafs.org/openafs.git
synced 2025-01-20 16:00:12 +00:00
windows-buf-invalidate-on-vnovnode-20080507
LICENSE MIT Once we know that an attempt to stablize a buffer has failed due to VNOVNODE, stop trying to Stablize future buffers and just invalidate all of them belonging to the same FID.
This commit is contained in:
parent
c847fb4964
commit
ef619db804
@ -1552,10 +1552,16 @@ long buf_FlushCleanPages(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp)
|
|||||||
buf_WaitIO(scp, bp);
|
buf_WaitIO(scp, bp);
|
||||||
lock_ReleaseMutex(&bp->mx);
|
lock_ReleaseMutex(&bp->mx);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if the error for the previous buffer was BADFD
|
||||||
|
* then all buffers for the FID are bad. Do not
|
||||||
|
* attempt to stabalize.
|
||||||
|
*/
|
||||||
|
if (code != CM_ERROR_BADFD) {
|
||||||
code = (*cm_buf_opsp->Stabilizep)(scp, userp, reqp);
|
code = (*cm_buf_opsp->Stabilizep)(scp, userp, reqp);
|
||||||
if (code && code != CM_ERROR_BADFD)
|
if (code && code != CM_ERROR_BADFD)
|
||||||
goto skip;
|
goto skip;
|
||||||
|
}
|
||||||
if (code == CM_ERROR_BADFD) {
|
if (code == CM_ERROR_BADFD) {
|
||||||
/* if the scp's FID is bad its because we received VNOVNODE
|
/* if the scp's FID is bad its because we received VNOVNODE
|
||||||
* when attempting to FetchStatus before the write. This
|
* when attempting to FetchStatus before the write. This
|
||||||
|
Loading…
Reference in New Issue
Block a user