Fix a bug introduced in r329612 that slowly invalidates all clean bufs.
Reported by: bde Reviewed by: bde Sponsored by: Netflix, Dell/EMC Isilon
This commit is contained in:
parent
8f5156d5ad
commit
63a483ed5f
@ -821,7 +821,8 @@ bufspace_daemon(void *arg)
|
|||||||
* which will inefficiently trade bufs with bqrelse
|
* which will inefficiently trade bufs with bqrelse
|
||||||
* until we return to condition 2.
|
* until we return to condition 2.
|
||||||
*/
|
*/
|
||||||
do {
|
while (bd->bd_bufspace > bd->bd_lobufspace ||
|
||||||
|
bd->bd_freebuffers < bd->bd_hifreebuffers) {
|
||||||
if (buf_recycle(bd, false) != 0) {
|
if (buf_recycle(bd, false) != 0) {
|
||||||
if (bd_flushall(bd))
|
if (bd_flushall(bd))
|
||||||
continue;
|
continue;
|
||||||
@ -842,9 +843,7 @@ bufspace_daemon(void *arg)
|
|||||||
BD_UNLOCK(bd);
|
BD_UNLOCK(bd);
|
||||||
}
|
}
|
||||||
maybe_yield();
|
maybe_yield();
|
||||||
} while (bd->bd_bufspace > bd->bd_lobufspace ||
|
}
|
||||||
bd->bd_freebuffers < bd->bd_hifreebuffers);
|
|
||||||
|
|
||||||
bufspace_daemon_wait(bd);
|
bufspace_daemon_wait(bd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user