diff options
author | dyson <dyson@FreeBSD.org> | 1997-11-30 23:21:08 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1997-11-30 23:21:08 +0000 |
commit | 4f2c9533113453d88ee19f8b876f3a22e5294eca (patch) | |
tree | f2ed70be5d027b4f452374ede0a1e0d2ad219530 | |
parent | f2ef972c8cf26caf2614b7955342a22c50d1d3ba (diff) | |
download | FreeBSD-src-4f2c9533113453d88ee19f8b876f3a22e5294eca.zip FreeBSD-src-4f2c9533113453d88ee19f8b876f3a22e5294eca.tar.gz |
Correct a last minute code change. Would have been an infinite loop under
certain error conditions.
Submitted by: pst@shockwave.com
-rw-r--r-- | sys/kern/vfs_aio.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c index c52d970..9940c7d 100644 --- a/sys/kern/vfs_aio.c +++ b/sys/kern/vfs_aio.c @@ -502,17 +502,13 @@ restart4: if ((lj->lioj_buffer_count == 0) && (lj->lioj_queue_count == 0)) { TAILQ_REMOVE(&ki->kaio_liojoblist, lj, lioj_list); zfree(aiolio_zone, lj); + } else { + printf("LIO job not cleaned up: B:%d, BF:%d, Q:%d, QF:%d\n", + lj->lioj_buffer_count, lj->lioj_buffer_finished_count, + lj->lioj_queue_count, lj->lioj_queue_finished_count); } } - for ( lj = TAILQ_FIRST(&ki->kaio_liojoblist); - lj; - lj = ljn) { - printf("LIO job not cleaned up: B:%d, BF:%d, Q:%d, QF:%d\n", - lj->lioj_buffer_count, lj->lioj_buffer_finished_count, - lj->lioj_queue_count, lj->lioj_queue_finished_count); - } - zfree(kaio_zone, ki); p->p_aioinfo = NULL; } |