Windows: move to head of queue no-op if not in queue
authorJeffrey Altman <jaltman@your-file-system.com>
Fri, 16 Dec 2011 22:22:49 +0000 (17:22 -0500)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 17 Dec 2011 05:22:11 +0000 (21:22 -0800)
If the buffer is not in the queue, do nothing.

Change-Id: Icdb95775bcc6d010ca1926ce4384d9edcd8f1cd3
Reviewed-on: http://gerrit.openafs.org/6351
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>

src/WINNT/afsd/cm_buf.c

index 142342d..7283271 100644 (file)
@@ -2629,6 +2629,9 @@ buf_RemoveFromRedirQueue(cm_scache_t *scp, cm_buf_t *bufp)
 {
     lock_AssertWrite(&buf_globalLock);
 
+    if (!(bufp->qFlags & CM_BUF_QREDIR))
+        return;
+
     lock_ObtainMutex(&scp->redirMx);
 
     _InterlockedAnd(&bufp->qFlags, ~CM_BUF_QREDIR);
@@ -2650,8 +2653,8 @@ void
 buf_MoveToHeadOfRedirQueue(cm_scache_t *scp, cm_buf_t *bufp)
 {
     lock_AssertWrite(&buf_globalLock);
-    osi_assertx(bufp->qFlags & CM_BUF_QREDIR,
-                 "buf_MoveToHeadOfRedirQueue buffer not held by redirector");
+    if (!(bufp->qFlags & CM_BUF_QREDIR))
+        return;
 
     lock_ObtainMutex(&scp->redirMx);