1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

MFV r323911:

8502 illumos#7955 broke delegated datasets when libshare is not present

illumos/illumos-gate@1c18e8fbd8
1c18e8fbd8

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>
This commit is contained in:
Alexander Motin 2018-02-18 01:42:17 +00:00
commit 6c5aa8d10e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=329505

View File

@ -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) {
/*