--- /dev/null
+*** mp/mp_fget.c.orig 2003-09-25 08:29:02.000000000 -0700
+--- mp/mp_fget.c 2006-05-26 14:58:02.246963204 -0700
+***************
+*** 553,560 ****
+ */
+ if (state != SECOND_MISS && bhp->ref == 1) {
+ bhp->priority = UINT32_T_MAX;
+! SH_TAILQ_REMOVE(&hp->hash_bucket, bhp, hq, __bh);
+! SH_TAILQ_INSERT_TAIL(&hp->hash_bucket, bhp, hq);
+ hp->hash_priority =
+ SH_TAILQ_FIRST(&hp->hash_bucket, __bh)->priority;
+ }
+--- 553,563 ----
+ */
+ if (state != SECOND_MISS && bhp->ref == 1) {
+ bhp->priority = UINT32_T_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_FIRST(&hp->hash_bucket, __bh)->priority;
+ }