From: Jeffrey Altman Date: Sun, 18 Nov 2012 02:39:50 +0000 (-0500) Subject: Windows: do not adjust deleted scache LRU ordering X-Git-Tag: upstream/1.8.0_pre1^2~1799 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=887cff5b0f84ad3b758bc4258b1f1302401c2c1d;p=packages%2Fo%2Fopenafs.git Windows: do not adjust deleted scache LRU ordering 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 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index de54cc0ee..cee14f29e 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -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); } }