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); }