From 9775e98844c393229183ebbbd75a877cd8a3a293 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Fri, 13 Jan 2017 15:29:32 -0800 Subject: [PATCH] OpenZFS 7181 - race between zfs_mount and zfs_ioc_rollback Authored by: Andriy Gapon Reviewed by: Matthew Ahrens Approved by: Gordon Ross Reviewed-by: Richard Yao Reviewed-by: Giuseppe Di Natale Ported-by: Brian Behlendorf OpenZFS-issue: https://www.illumos.org/issues/7181 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/90f2c09 Closes #5585 --- module/zfs/zfs_vfsops.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c index 3c76cfe6ff..65efcdce5c 100644 --- a/module/zfs/zfs_vfsops.c +++ b/module/zfs/zfs_vfsops.c @@ -911,13 +911,6 @@ zfs_sb_setup(zfs_sb_t *zsb, boolean_t mounting) if (error) return (error); - /* - * Set the objset user_ptr to track its zsb. - */ - mutex_enter(&zsb->z_os->os_user_ptr_lock); - dmu_objset_set_user(zsb->z_os, zsb); - mutex_exit(&zsb->z_os->os_user_ptr_lock); - zsb->z_log = zil_open(zsb->z_os, zfs_get_data); /* @@ -981,6 +974,13 @@ zfs_sb_setup(zfs_sb_t *zsb, boolean_t mounting) readonly_changed_cb(zsb, B_TRUE); } + /* + * Set the objset user_ptr to track its zsb. + */ + mutex_enter(&zsb->z_os->os_user_ptr_lock); + dmu_objset_set_user(zsb->z_os, zsb); + mutex_exit(&zsb->z_os->os_user_ptr_lock); + return (0); } EXPORT_SYMBOL(zfs_sb_setup);