]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: do not adjust deleted scache LRU ordering
authorJeffrey Altman <jaltman@your-file-system.com>
Sun, 18 Nov 2012 02:39:50 +0000 (21:39 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Sat, 8 Dec 2012 16:19:17 +0000 (08:19 -0800)
Instead of moving deleted scache objects so that they are next
in line to be recycled, do not move them at all.  Making them
next to be recycled results in the CM_SCACHEFLAG_DELETED flag
value being lost.

Reviewed-on: http://gerrit.openafs.org/8474
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
(cherry picked from commit 887cff5b0f84ad3b758bc4258b1f1302401c2c1d)

Change-Id: I7a9377fdd1546f6e555afa4b2f714d8b74b26e87
Reviewed-on: http://gerrit.openafs.org/8648
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsd/cm_scache.c

index af6c280b3b06f3be6636024333838813d2c8dfe0..ed23b6767ed45fdbf685136c426407211c4f7e1b 100644 (file)
@@ -62,11 +62,8 @@ cm_RootSCachep(cm_user_t *userp, cm_req_t *reqp)
 void cm_AdjustScacheLRU(cm_scache_t *scp)
 {
     lock_AssertWrite(&cm_scacheLock);
-    osi_QRemoveHT((osi_queue_t **) &cm_data.scacheLRUFirstp, (osi_queue_t **) &cm_data.scacheLRULastp, &scp->q);
-    if (scp->flags & CM_SCACHEFLAG_DELETED) {
-        /* Since it has been deleted make it the first to be recycled. */
-        osi_QAddT((osi_queue_t **) &cm_data.scacheLRUFirstp, (osi_queue_t **) &cm_data.scacheLRULastp, &scp->q);
-    } else {
+    if (!(scp->flags & CM_SCACHEFLAG_DELETED)) {
+        osi_QRemoveHT((osi_queue_t **) &cm_data.scacheLRUFirstp, (osi_queue_t **) &cm_data.scacheLRULastp, &scp->q);
         osi_QAddH((osi_queue_t **) &cm_data.scacheLRUFirstp, (osi_queue_t **) &cm_data.scacheLRULastp, &scp->q);
     }
 }