From: Jeffrey Altman Date: Mon, 13 Feb 2006 16:33:49 +0000 (+0000) Subject: windows-findacl-optimize-20060213 X-Git-Tag: openafs-devel-1_5_0~33 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=bfdc909b5477e493656b3e9fb744fdf5cd16e179;p=packages%2Fo%2Fopenafs.git windows-findacl-optimize-20060213 don't remove an entry from the queue and add it to the head if it already is the head. --- diff --git a/src/WINNT/afsd/cm_aclent.c b/src/WINNT/afsd/cm_aclent.c index e34470a10..0a1779fe7 100644 --- a/src/WINNT/afsd/cm_aclent.c +++ b/src/WINNT/afsd/cm_aclent.c @@ -91,14 +91,16 @@ long cm_FindACLCache(cm_scache_t *scp, cm_user_t *userp, long *rightsp) &aclp->q); } else { *rightsp = aclp->randomAccess; - if (cm_data.aclLRUEndp == aclp) - cm_data.aclLRUEndp = (cm_aclent_t *) osi_QPrev(&aclp->q); - - /* move to the head of the LRU queue */ - osi_QRemove((osi_queue_t **) &cm_data.aclLRUp, &aclp->q); - osi_QAddH((osi_queue_t **) &cm_data.aclLRUp, - (osi_queue_t **) &cm_data.aclLRUEndp, - &aclp->q); + if (cm_data.aclLRUp != aclp) { + if (cm_data.aclLRUEndp == aclp) + cm_data.aclLRUEndp = (cm_aclent_t *) osi_QPrev(&aclp->q); + + /* move to the head of the LRU queue */ + osi_QRemove((osi_queue_t **) &cm_data.aclLRUp, &aclp->q); + osi_QAddH((osi_queue_t **) &cm_data.aclLRUp, + (osi_queue_t **) &cm_data.aclLRUEndp, + &aclp->q); + } retval = 0; /* success */ } break;