diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/vfs_default.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index 6552a1f..5202e9c 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -383,7 +383,7 @@ vop_stdfsync(ap) struct bufobj *bo; struct buf *nbp; int s, error = 0; - int maxretry = 100; /* large, arbitrarily chosen */ + int maxretry = 1000; /* large, arbitrarily chosen */ VI_LOCK(vp); loop1: @@ -398,7 +398,7 @@ loop1: splx(s); /* - * Flush all dirty buffers associated with a block device. + * Flush all dirty buffers associated with a vnode. */ loop2: s = splbio(); @@ -445,11 +445,12 @@ loop2: splx(s); goto loop1; } - vprint("fsync: giving up on dirty", vp); error = EAGAIN; } } VI_UNLOCK(vp); + if (error == EAGAIN) + vprint("fsync: giving up on dirty", vp); splx(s); return (error); |