diff options
author | mckusick <mckusick@FreeBSD.org> | 2000-01-30 20:32:59 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2000-01-30 20:32:59 +0000 |
commit | 541e13d43c95199da17e99c4ba4f8b29c7c4afc4 (patch) | |
tree | ee71d68ec2c2f99d6a69e9b63d2c89e8e6b62974 /sys/contrib | |
parent | fc44169a9a0f7040beece77862b6cb42cd9f1b8d (diff) | |
download | FreeBSD-src-541e13d43c95199da17e99c4ba4f8b29c7c4afc4.zip FreeBSD-src-541e13d43c95199da17e99c4ba4f8b29c7c4afc4.tar.gz |
When writing out bitmap buffers, need to skip over ones that already
have a write in progress. Otherwise one can get in an infinite loop
trying to get them all flushed.
Submitted by: Matthew Dillon <dillon@apollo.backplane.com>
Diffstat (limited to 'sys/contrib')
-rw-r--r-- | sys/contrib/softupdates/ffs_softdep.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/contrib/softupdates/ffs_softdep.c b/sys/contrib/softupdates/ffs_softdep.c index b061792..a137ce7 100644 --- a/sys/contrib/softupdates/ffs_softdep.c +++ b/sys/contrib/softupdates/ffs_softdep.c @@ -3817,7 +3817,8 @@ softdep_fsync_mountdev(vp) * dependencies. */ if ((wk = LIST_FIRST(&bp->b_dep)) == NULL || - wk->wk_type != D_BMSAFEMAP) { + wk->wk_type != D_BMSAFEMAP || + (bp->b_xflags & BX_BKGRDINPROG)) { BUF_UNLOCK(bp); continue; } |