--- rpc/replay.c.sav 2010-08-08 18:05:50.000000000 -0400 +++ rpc/replay.c 2010-08-08 18:16:43.000000000 -0400 @@ -90,8 +90,10 @@ replay_setsize(struct replay_cache *rc, size_t newmaxsize) { + mtx_lock(&rc->rc_lock); rc->rc_maxsize = newmaxsize; replay_prune(rc); + mtx_unlock(&rc->rc_lock); } void @@ -144,8 +146,8 @@ bool_t freed_one; if (rc->rc_count >= REPLAY_MAX || rc->rc_size > rc->rc_maxsize) { - freed_one = FALSE; do { + freed_one = FALSE; /* * Try to free an entry. Don't free in-progress entries */