svn commit: r329505 - head/cddl/contrib/opensolaris/lib/libzfs/common
Alexander Motin
mav at FreeBSD.org
Sun Feb 18 01:42:19 UTC 2018
Author: mav
Date: Sun Feb 18 01:42:17 2018
New Revision: 329505
URL: https://svnweb.freebsd.org/changeset/base/329505
Log:
MFV r323911:
8502 illumos#7955 broke delegated datasets when libshare is not present
illumos/illumos-gate at 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 at joyent.com>
Reviewed by: Yuri Pankov <yuripv at gmx.com>
Approved by: Richard Lowe <richlowe at richlowe.net>
Author: Jerry Jelinek <jerry.jelinek at joyent.com>
Modified:
head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c
Directory Properties:
head/cddl/contrib/opensolaris/ (props changed)
head/cddl/contrib/opensolaris/lib/libzfs/ (props changed)
Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Sun Feb 18 01:35:46 2018 (r329504)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_mount.c Sun Feb 18 01:42:17 2018 (r329505)
@@ -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 at gmail.com>
+ * Copyright 2017 Joyent, Inc.
* Copyright 2017 RackTop Systems.
*/
@@ -610,8 +611,14 @@ zfs_init_libshare(libzfs_handle_t *zhandle, int servic
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) {
/*
More information about the svn-src-all
mailing list