Module Name:    src
Committed By:   riastradh
Date:           Wed Apr  9 22:40:33 UTC 2014

Modified Files:
        src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c

Log Message:
Try vflush, which may fail, before we mark the file system mounted.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.10 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.11
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.10	Thu Mar 27 15:50:48 2014
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c	Wed Apr  9 22:40:32 2014
@@ -1959,6 +1959,9 @@ zfs_umount(vfs_t *vfsp, int fflag)
 		}
 	}
 #endif
+	ret = vflush(vfsp, NULL, (ISSET(fflag, MS_FORCE)? FORCECLOSE : 0));
+	if (ret != 0)
+		return ret;
 	vfsp->vfs_flag |= VFS_UNMOUNTED;
 
 	VERIFY(zfsvfs_teardown(zfsvfs, B_TRUE) == 0);
@@ -1988,13 +1991,6 @@ zfs_umount(vfs_t *vfsp, int fflag)
 	if (zfsvfs->z_ctldir != NULL)
 		zfsctl_destroy(zfsvfs);
 
-	if (fflag & MS_FORCE)
-		flags |= FORCECLOSE;
-	
-	ret = vflush(vfsp, NULL, 0);
-	if (ret != 0)
-		return ret;
-	
 	return (0);
 }
 

Reply via email to