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