Author: kib
Date: Wed Apr  3 15:34:25 2013
New Revision: 249053
URL: http://svnweb.freebsd.org/changeset/base/249053

Log:
  MFC r248562:
  Move the vn_start_write() call in the dounmount() before setting the
  MNTK_UNMOUNT flag.

Modified:
  stable/9/sys/kern/vfs_mount.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/kern/vfs_mount.c
==============================================================================
--- stable/9/sys/kern/vfs_mount.c       Wed Apr  3 14:10:37 2013        
(r249052)
+++ stable/9/sys/kern/vfs_mount.c       Wed Apr  3 15:34:25 2013        
(r249053)
@@ -1260,12 +1260,14 @@ dounmount(mp, flags, td)
                return (error);
        }
 
+       vn_start_write(NULL, &mp, V_WAIT);
        MNT_ILOCK(mp);
        if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0 ||
            !TAILQ_EMPTY(&mp->mnt_uppers)) {
                MNT_IUNLOCK(mp);
                if (coveredvp)
                        VOP_UNLOCK(coveredvp, 0);
+               vn_finished_write(mp);
                return (EBUSY);
        }
        mp->mnt_kern_flag |= MNTK_UNMOUNT | MNTK_NOINSMNTQ;
@@ -1285,7 +1287,6 @@ dounmount(mp, flags, td)
        KASSERT(error == 0,
            ("%s: invalid return value for msleep in the drain path @ %s:%d",
            __func__, __FILE__, __LINE__));
-       vn_start_write(NULL, &mp, V_WAIT);
 
        if (mp->mnt_flag & MNT_EXPUBLIC)
                vfs_setpublicfs(NULL, NULL, NULL);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to