diff options
author | pjd <pjd@FreeBSD.org> | 2007-04-09 00:02:11 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2007-04-09 00:02:11 +0000 |
commit | 00da9008fda1d588ff8bbb908775a98ee3828f42 (patch) | |
tree | 158afba04bc8be381c96263f75836a6dce01ad62 | |
parent | afcf861a95ee4c76fa8a2141fcaf62a34cee70ba (diff) | |
download | FreeBSD-src-00da9008fda1d588ff8bbb908775a98ee3828f42.zip FreeBSD-src-00da9008fda1d588ff8bbb908775a98ee3828f42.tar.gz |
Drop the Giant lock before calling zfs_domount(), which is held when
mounting root file system.
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c | 5 | ||||
-rw-r--r-- | sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c index 27e00c3..2937ab0 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c @@ -598,7 +598,10 @@ zfs_mount(vfs_t *vfsp, kthread_t *td) if (vfs_getopt(vfsp->mnt_optnew, "from", (void **)&from, NULL)) return (EINVAL); - return (zfs_domount(vfsp, from, td)); + DROP_GIANT(); + error = zfs_domount(vfsp, from, td); + PICKUP_GIANT(); + return (error); } static int diff --git a/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c index 27e00c3..2937ab0 100644 --- a/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c +++ b/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c @@ -598,7 +598,10 @@ zfs_mount(vfs_t *vfsp, kthread_t *td) if (vfs_getopt(vfsp->mnt_optnew, "from", (void **)&from, NULL)) return (EINVAL); - return (zfs_domount(vfsp, from, td)); + DROP_GIANT(); + error = zfs_domount(vfsp, from, td); + PICKUP_GIANT(); + return (error); } static int |