]> 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>
Fri, 23 Nov 2012 15:45:59 +0000 (07:45 -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.

Change-Id: I3839053066cca304454e445b2f4e4abea6e08dda
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>
src/WINNT/afsd/cm_scache.c

index de54cc0ee21c1428b28f9d4d7bb53fd175c953d4..cee14f29e1635b344f8b5a5e31ece215944313ba 100644 (file)
@@ -66,11 +66,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);
     }
 }