From: Jeffrey Altman Date: Mon, 13 Feb 2006 16:33:06 +0000 (+0000) Subject: STABLE14-windows-findacl-optimize-20060213 X-Git-Tag: openafs-stable-1_4_1-rc7~12 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=2f310b0dfff79739e6acecf8ac51a27db3b4fc2a;p=packages%2Fo%2Fopenafs.git STABLE14-windows-findacl-optimize-20060213 don't remove an entry from the queue and add it to the head if it already is the head. (cherry picked from commit bfdc909b5477e493656b3e9fb744fdf5cd16e179) --- 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;