diff options
author | mckay <mckay@FreeBSD.org> | 1999-07-05 12:50:54 +0000 |
---|---|---|
committer | mckay <mckay@FreeBSD.org> | 1999-07-05 12:50:54 +0000 |
commit | 4eda78adf207703a28dce1d83eccd1f5c43d3249 (patch) | |
tree | d64e1498cb0025d5f824c84721ff7389f9a58162 /sys/vm/vm_pager.c | |
parent | d20b3b092821e3562a5d044181e5c7829276dc91 (diff) | |
download | FreeBSD-src-4eda78adf207703a28dce1d83eccd1f5c43d3249.zip FreeBSD-src-4eda78adf207703a28dce1d83eccd1f5c43d3249.tar.gz |
Reformat previous fix to remove an uglier than average goto.
Looked OK to: dg
Diffstat (limited to 'sys/vm/vm_pager.c')
-rw-r--r-- | sys/vm/vm_pager.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index 1895d4f..f4639e5 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_pager.c,v 1.49 1999/06/27 11:44:22 peter Exp $ + * $Id: vm_pager.c,v 1.50 1999/07/04 00:25:38 mckusick Exp $ */ /* @@ -377,18 +377,20 @@ getpbuf(pfreecnt) s = splvm(); -retry: - if (pfreecnt) { - while (*pfreecnt == 0) { - tsleep(pfreecnt, PVM, "wswbuf0", 0); + for (;;) { + if (pfreecnt) { + while (*pfreecnt == 0) { + tsleep(pfreecnt, PVM, "wswbuf0", 0); + } } - } - /* get a bp from the swap buffer header pool */ - while ((bp = TAILQ_FIRST(&bswlist)) == NULL) { + /* get a bp from the swap buffer header pool */ + if ((bp = TAILQ_FIRST(&bswlist)) != NULL) + break; + bswneeded = 1; tsleep(&bswneeded, PVM, "wswbuf1", 0); - goto retry; /* loop in case someone else grabbed one */ + /* loop in case someone else grabbed one */ } TAILQ_REMOVE(&bswlist, bp, b_freelist); if (pfreecnt) |