implement MNT_ASYNC
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Mon, 24 Jan 1994 16:05:21 +0000 (08:05 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Mon, 24 Jan 1994 16:05:21 +0000 (08:05 -0800)
SCCS-vsn: sys/kern/vfs_bio.c 8.8

usr/src/sys/kern/vfs_bio.c

index 43123da..0930a33 100644 (file)
@@ -12,7 +12,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)vfs_bio.c   8.7 (Berkeley) %G%
+ *     @(#)vfs_bio.c   8.8 (Berkeley) %G%
  */
 
 #include <sys/param.h>
  */
 
 #include <sys/param.h>
@@ -253,8 +253,11 @@ bwrite(bp)
        register int flag;
        int s, error = 0;
 
        register int flag;
        int s, error = 0;
 
-       if (bp->b_vp && (bp->b_vp->v_mount->mnt_flag & MNT_ASYNC))
-               bp->b_flags |= B_ASYNC;
+       if ((bp->b_flags & B_ASYNC) == 0 &&
+           bp->b_vp && (bp->b_vp->v_mount->mnt_flag & MNT_ASYNC)) {
+               bdwrite(bp);
+               return (0);
+       }
        flag = bp->b_flags;
        bp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI);
        if (flag & B_ASYNC) {
        flag = bp->b_flags;
        bp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI);
        if (flag & B_ASYNC) {