summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/opensolaris
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2018-03-22 23:38:03 +0000
committermav <mav@FreeBSD.org>2018-03-22 23:38:03 +0000
commit82c498e1df7f7a89c29a9cc84400ae795a78015a (patch)
tree790aaa195f56d53866557e9d3344c10afc27cbd4 /cddl/contrib/opensolaris
parentf809939b9eb4e29da3037d8dd8838f79c1f3b276 (diff)
downloadFreeBSD-src-82c498e1df7f7a89c29a9cc84400ae795a78015a.zip
FreeBSD-src-82c498e1df7f7a89c29a9cc84400ae795a78015a.tar.gz
MFC r329505: MFV r323911:
8502 illumos#7955 broke delegated datasets when libshare is not present illumos/illumos-gate@1c18e8fbd8db41a9fb39bd3ef7a18ee71ece20da https://github.com/illumos/illumos-gate/commit/1c18e8fbd8db41a9fb39bd3ef7a18ee71ece20da https://www.illumos.org/issues/8502 The code in lib/libzfs/common/libzfs_mount.c already basically handles the case when libshare is not installed. We just need to not fail in zfs_init_libshare_impl. I tested this in lx and things work as expected. I also tested there trying to set sharenfs and sharesmb on the delegated dataset. Neither is allowed from within a zone. The spew of msgs from a native zone is not ZFS specific. I see the same spew simply running the share command. Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Yuri Pankov <yuripv@gmx.com> Approved by: Richard Lowe <richlowe@richlowe.net> Author: Jerry Jelinek <jerry.jelinek@joyent.com>
Diffstat (limited to 'cddl/contrib/opensolaris')
-rw-r--r--cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c
index 2bf494f..8830b86 100644
--- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c
+++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c
@@ -24,6 +24,7 @@
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014 by Delphix. All rights reserved.
* Copyright 2016 Igor Kozhukhov <ikozhukhov@gmail.com>
+ * Copyright 2017 Joyent, Inc.
* Copyright 2017 RackTop Systems.
*/
@@ -610,8 +611,14 @@ zfs_init_libshare(libzfs_handle_t *zhandle, int service)
int ret = SA_OK;
#ifdef illumos
+ /*
+ * libshare is either not installed or we're in a branded zone. The
+ * rest of the wrapper functions around the libshare calls already
+ * handle NULL function pointers, but we don't want the callers of
+ * zfs_init_libshare() to fail prematurely if libshare is not available.
+ */
if (_sa_init == NULL)
- ret = SA_CONFIG_ERR;
+ return (SA_OK);
if (ret == SA_OK && zhandle->libzfs_shareflags & ZFSSHARE_MISS) {
/*
OpenPOWER on IntegriCloud