Author: kib
Date: Tue Mar 13 22:04:27 2012
New Revision: 232948
URL: http://svn.freebsd.org/changeset/base/232948

Log:
  Supply boolean as the second argument to ffs_update(), and not a
  MNT_[NO]WAIT constants, which in fact always caused sync operation.
  
  Based on the submission by:   bde
  Reviewed by:  mckusick
  MFC after:    2 weeks

Modified:
  head/sys/ufs/ffs/ffs_softdep.c
  head/sys/ufs/ffs/ffs_vnops.c

Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c      Tue Mar 13 22:00:46 2012        
(r232947)
+++ head/sys/ufs/ffs/ffs_softdep.c      Tue Mar 13 22:04:27 2012        
(r232948)
@@ -6311,7 +6311,7 @@ softdep_journal_freeblocks(ip, cred, len
                DIP_SET(ip, i_size, length);
                ip->i_flag |= IN_CHANGE | IN_UPDATE;
                allocbuf(bp, frags);
-               ffs_update(vp, MNT_NOWAIT);
+               ffs_update(vp, 0);
                bawrite(bp);
        } else if (lastoff != 0 && vp->v_type != VDIR) {
                int size;
@@ -12346,7 +12346,7 @@ flush_newblk_dep(vp, mp, lbn)
                 * point at the newdirblk before the dependency
                 * will go away.
                 */
-               error = ffs_update(vp, MNT_WAIT);
+               error = ffs_update(vp, 1);
                if (error)
                        break;
                ACQUIRE_LOCK(&lk);
@@ -12382,7 +12382,7 @@ restart:
                 */
                if (dap->da_state & MKDIR_PARENT) {
                        FREE_LOCK(&lk);
-                       if ((error = ffs_update(pvp, MNT_WAIT)) != 0)
+                       if ((error = ffs_update(pvp, 1)) != 0)
                                break;
                        ACQUIRE_LOCK(&lk);
                        /*
@@ -12424,7 +12424,7 @@ restart:
                         * disk.
                         */
                        if (error == 0 && dap == LIST_FIRST(diraddhdp))
-                               error = ffs_update(vp, MNT_WAIT);
+                               error = ffs_update(vp, 1);
                        vput(vp);
                        if (error != 0)
                                break;
@@ -12481,7 +12481,7 @@ retry:
                        if ((error = ffs_vgetf(mp, inum, LK_EXCLUSIVE, &vp,
                            FFSV_FORCEINSMQ)))
                                break;
-                       error = ffs_update(vp, MNT_WAIT);
+                       error = ffs_update(vp, 1);
                        vput(vp);
                        if (error)
                                break;

Modified: head/sys/ufs/ffs/ffs_vnops.c
==============================================================================
--- head/sys/ufs/ffs/ffs_vnops.c        Tue Mar 13 22:00:46 2012        
(r232947)
+++ head/sys/ufs/ffs/ffs_vnops.c        Tue Mar 13 22:04:27 2012        
(r232948)
@@ -324,7 +324,7 @@ next:
                /* Write the inode after sync passes to flush deps. */
                if (wait && DOINGSOFTDEP(vp) && noupdate == 0) {
                        BO_UNLOCK(bo);
-                       ffs_update(vp, MNT_WAIT);
+                       ffs_update(vp, 1);
                        BO_LOCK(bo);
                }
                /* switch between sync/async. */
@@ -339,7 +339,7 @@ next:
        BO_UNLOCK(bo);
        error = 0;
        if (noupdate == 0)
-               error = ffs_update(vp, MNT_WAIT);
+               error = ffs_update(vp, 1);
        if (DOINGSUJ(vp))
                softdep_journal_fsync(VTOI(vp));
        return (error);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to