diff options
author | msmith <msmith@FreeBSD.org> | 2000-11-03 16:11:05 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2000-11-03 16:11:05 +0000 |
commit | a1750a380142dd6f26bd6d163514bb5f107d1a9b (patch) | |
tree | 980f98f8910632ea00fce5a764d9a48c51aafeba | |
parent | a25227ce2064b3482f7a49e6a6222de580a32585 (diff) | |
download | FreeBSD-src-a1750a380142dd6f26bd6d163514bb5f107d1a9b.zip FreeBSD-src-a1750a380142dd6f26bd6d163514bb5f107d1a9b.tar.gz |
If we can't get a command to back the bio we just took off the queue,
put the bio back, otherwise we'll drop it when we bail. This was
causing bio lossage under load, leading to eventual system lockup.
-rw-r--r-- | sys/dev/twe/twe.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/twe/twe.c b/sys/dev/twe/twe.c index c9205dd..53075ab 100644 --- a/sys/dev/twe/twe.c +++ b/sys/dev/twe/twe.c @@ -831,8 +831,10 @@ twe_startio(struct twe_softc *sc) if ((bp = twe_dequeue_bio(sc)) == NULL) break; /* get a command */ - if (twe_get_request(sc, &tr)) + if (twe_get_request(sc, &tr)) { + twe_enqueue_bio(sc, bp); break; + } /* connect the bio to the command */ tr->tr_complete = twe_completeio; |