mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Set flag in needsbuffer while still holding bqlock to avoid lost wakeup.
This commit is contained in:
parent
d5807d9482
commit
dffaf91aa3
1 changed files with 4 additions and 2 deletions
|
|
@ -1907,7 +1907,6 @@ restart:
|
|||
int flags;
|
||||
char *waitmsg;
|
||||
|
||||
mtx_unlock(&bqlock);
|
||||
if (defrag) {
|
||||
flags = VFS_BIO_NEED_BUFSPACE;
|
||||
waitmsg = "nbufkv";
|
||||
|
|
@ -1918,11 +1917,14 @@ restart:
|
|||
waitmsg = "newbuf";
|
||||
flags = VFS_BIO_NEED_ANY;
|
||||
}
|
||||
mtx_lock(&nblock);
|
||||
needsbuffer |= flags;
|
||||
mtx_unlock(&nblock);
|
||||
mtx_unlock(&bqlock);
|
||||
|
||||
bd_speedup(); /* heeeelp */
|
||||
|
||||
mtx_lock(&nblock);
|
||||
needsbuffer |= flags;
|
||||
while (needsbuffer & flags) {
|
||||
if (msleep(&needsbuffer, &nblock,
|
||||
(PRIBIO + 4) | slpflag, waitmsg, slptimeo)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue