*** ../mp/mp_fget.c.orig 2005-10-12 10:53:36.000000000 -0700 --- ../mp/mp_fget.c 2006-05-30 20:48:10.000000000 -0700 *************** *** 587,594 **** */ if (state != SECOND_MISS && bhp->ref == 1) { bhp->priority = UINT32_MAX; ! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh); ! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq); hp->hash_priority = SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority; } --- 587,597 ---- */ if (state != SECOND_MISS && bhp->ref == 1) { bhp->priority = UINT32_MAX; ! if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) != ! SH_TAILQ_LAST(&hp->hash_bucket, hq, __bh)) { ! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh); ! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq); ! } hp->hash_priority = SH_TAILQ_FIRSTP(&hp->hash_bucket, __bh)->priority; }