The upstream website seems broken. Also comment PATCH_SITES to try ftp.FreeBSD.org first.
50 lines
1.6 KiB
Groff
50 lines
1.6 KiB
Groff
*** ../mp/mp_fget.c.orig 2002-08-07 08:23:01.000000000 -0700
|
|
--- ../mp/mp_fget.c 2006-05-30 20:32:20.000000000 -0700
|
|
***************
|
|
*** 506,513 ****
|
|
*/
|
|
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;
|
|
}
|
|
--- 506,517 ----
|
|
*/
|
|
if (state != SECOND_MISS && bhp->ref == 1) {
|
|
bhp->priority = UINT32_T_MAX;
|
|
! /* Move the buffer if there are others in the bucket. */
|
|
! if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) != bhp
|
|
! || SH_TAILQ_NEXT(bhp, hq, __bh) != NULL) {
|
|
! 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;
|
|
}
|
|
*** ../mp/mp_fput.c.orig 2002-08-13 06:26:41.000000000 -0700
|
|
--- ../mp/mp_fput.c 2006-05-30 20:55:11.000000000 -0700
|
|
***************
|
|
*** 166,171 ****
|
|
--- 166,176 ----
|
|
* to the correct position in the list.
|
|
*/
|
|
argbhp = bhp;
|
|
+ /* Move the buffer if there are others in the bucket. */
|
|
+ if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) == bhp
|
|
+ && SH_TAILQ_NEXT(bhp, hq, __bh) != NULL)
|
|
+ goto done;
|
|
+
|
|
SH_TAILQ_REMOVE(&hp->hash_bucket, argbhp, hq, __bh);
|
|
|
|
prev = NULL;
|
|
***************
|
|
*** 178,183 ****
|
|
--- 183,189 ----
|
|
else
|
|
SH_TAILQ_INSERT_AFTER(&hp->hash_bucket, prev, argbhp, hq, __bh);
|
|
|
|
+ done:
|
|
/* Reset the hash bucket's priority. */
|
|
hp->hash_priority = SH_TAILQ_FIRST(&hp->hash_bucket, __bh)->priority;
|