Minimal libshare infrastructure
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 16 Dec 2010 21:47:30 +0000 (13:47 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 5 Feb 2011 00:14:29 +0000 (16:14 -0800)
ZFS even under Solaris does not strictly require libshare to be
available.  The current implementation attempts to dlopen() the
library to access the needed symbols.  If this fails libshare
support is simply disabled.

This means that on Linux we only need the most minimal libshare
implementation.  In fact just enough to prevent the build from
failing.  Longer term we can decide if we want to implement a
libshare library like Solaris.  At best this would be an abstraction
layer between ZFS and NFS/SMB.  Alternately, we can drop libshare
entirely and directly integrate ZFS with Linux's NFS/SMB.

Finally the bare bones user-libshare.m4 test was dropped.  If we
do decide to implement libshare at some point it will surely be
as part of this package so the check is not needed.

49 files changed:
Makefile.in
cmd/Makefile.in
cmd/zdb/Makefile.in
cmd/zfs/Makefile.in
cmd/zinject/Makefile.in
cmd/zpios/Makefile.in
cmd/zpool/Makefile.in
cmd/zpool_id/Makefile.in
cmd/zpool_layout/Makefile.in
cmd/ztest/Makefile.in
config/user-libshare.m4 [deleted file]
config/user.m4
configure
etc/Makefile.in
include/Makefile.in
include/sys/Makefile.in
include/sys/fm/Makefile.in
include/sys/fm/fs/Makefile.in
include/sys/fs/Makefile.in
lib/Makefile.in
lib/libavl/Makefile.in
lib/libefi/Makefile.in
lib/libnvpair/Makefile.in
lib/libspl/Makefile.in
lib/libspl/asm-generic/Makefile.in
lib/libspl/asm-i386/Makefile.in
lib/libspl/asm-x86_64/Makefile.in
lib/libspl/include/Makefile.in
lib/libspl/include/ia32/Makefile.in
lib/libspl/include/ia32/sys/Makefile.in
lib/libspl/include/libshare.h
lib/libspl/include/rpc/Makefile.in
lib/libspl/include/sys/Makefile.in
lib/libspl/include/sys/dktp/Makefile.in
lib/libspl/include/sys/sysevent/Makefile.in
lib/libspl/include/util/Makefile.in
lib/libunicode/Makefile.in
lib/libuutil/Makefile.in
lib/libzfs/Makefile.in
lib/libzfs/libzfs_mount.c
lib/libzpool/Makefile.in
man/Makefile.in
man/man8/Makefile.in
scripts/Makefile.in
scripts/zpios-profile/Makefile.in
scripts/zpios-test/Makefile.in
scripts/zpool-config/Makefile.in
scripts/zpool-layout/Makefile.in
zfs_config.h.in

index 09708bf..0d10478 100644 (file)
@@ -77,7 +77,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index bed2951..016045a 100644 (file)
@@ -62,7 +62,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index b84eb2c..ce17224 100644 (file)
@@ -65,7 +65,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 6bd1f3f..654a381 100644 (file)
@@ -65,7 +65,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index c259867..daced68 100644 (file)
@@ -65,7 +65,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index c30a3e0..69747f3 100644 (file)
@@ -65,7 +65,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index b628756..a6f96f7 100644 (file)
@@ -65,7 +65,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 932bc25..5d32e81 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 9b1b5eb..ef53493 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 3b4e7c4..ec16a73 100644 (file)
@@ -65,7 +65,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
diff --git a/config/user-libshare.m4 b/config/user-libshare.m4
deleted file mode 100644 (file)
index 3b92bba..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-dnl #
-dnl # Check for libshare
-dnl #
-AC_DEFUN([ZFS_AC_CONFIG_USER_LIBSHARE], [
-       AC_CHECK_LIB([share], [sa_init],
-               [AC_DEFINE([HAVE_LIBSHARE], 1,
-               [Define to 1 if 'libshare' library available])])
-])
index 6f02769..a79deef 100644 (file)
@@ -3,7 +3,6 @@ dnl # Default ZFS user configuration
 dnl #
 AC_DEFUN([ZFS_AC_CONFIG_USER], [
        ZFS_AC_CONFIG_USER_ARCH
-       ZFS_AC_CONFIG_USER_LIBSHARE
        ZFS_AC_CONFIG_USER_IOCTL
        ZFS_AC_CONFIG_USER_ZLIB
        ZFS_AC_CONFIG_USER_LIBUUID
index 48bf4cb..d962704 100755 (executable)
--- a/configure
+++ b/configure
@@ -13849,81 +13849,6 @@ $as_echo_n "checking for target asm dir... " >&6; }
 $as_echo "$TARGET_ASM_DIR" >&6; }
 
 
-       { $as_echo "$as_me:$LINENO: checking for sa_init in -lshare" >&5
-$as_echo_n "checking for sa_init in -lshare... " >&6; }
-if test "${ac_cv_lib_share_sa_init+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lshare  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sa_init ();
-int
-main ()
-{
-return sa_init ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_share_sa_init=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_share_sa_init=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_share_sa_init" >&5
-$as_echo "$ac_cv_lib_share_sa_init" >&6; }
-if test "x$ac_cv_lib_share_sa_init" = x""yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBSHARE 1
-_ACEOF
-
-fi
-
-
-
        { $as_echo "$as_me:$LINENO: checking for ioctl()" >&5
 $as_echo_n "checking for ioctl()... " >&6; }
        cat >conftest.$ac_ext <<_ACEOF
@@ -17446,81 +17371,6 @@ $as_echo_n "checking for target asm dir... " >&6; }
 $as_echo "$TARGET_ASM_DIR" >&6; }
 
 
-       { $as_echo "$as_me:$LINENO: checking for sa_init in -lshare" >&5
-$as_echo_n "checking for sa_init in -lshare... " >&6; }
-if test "${ac_cv_lib_share_sa_init+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lshare  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sa_init ();
-int
-main ()
-{
-return sa_init ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_share_sa_init=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_share_sa_init=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_share_sa_init" >&5
-$as_echo "$ac_cv_lib_share_sa_init" >&6; }
-if test "x$ac_cv_lib_share_sa_init" = x""yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBSHARE 1
-_ACEOF
-
-fi
-
-
-
        { $as_echo "$as_me:$LINENO: checking for ioctl()" >&5
 $as_echo_n "checking for ioctl()... " >&6; }
        cat >conftest.$ac_ext <<_ACEOF
index eb8ad95..4d39394 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 7a1f40a..851bd8a 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index d3985cc..2e8af81 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index b275659..4099398 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index e8d289a..ddad523 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index d1ee3b2..903b08d 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 18ff052..d607102 100644 (file)
@@ -62,7 +62,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 500846a..9159093 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 1f44090..7839c13 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index e1027d5..0bafbab 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 385a567..8aa947a 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 162c386..0a8ff7c 100644 (file)
@@ -63,7 +63,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 9a26bb4..6ef7483 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index a00f235..5c1aeaf 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 3605600..0f2a688 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index a9f80cd..d3a8f6f 100644 (file)
@@ -62,7 +62,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index fb0fe3f..5f7e05f 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index afbdf5b..f1fbfad 100644 (file)
  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
-
-/*
- * basic API declarations for share management
- */
-
 #ifndef _LIBSPL_LIBSHARE_H
 #define _LIBSPL_LIBSHARE_H
 
+typedef void *sa_handle_t;     /* opaque handle to access core functions */
+typedef void *sa_group_t;
+typedef void *sa_share_t;
+
+/* API Initialization */
+#define        SA_INIT_SHARE_API       0x0001  /* init share specific interface */
+#define        SA_INIT_CONTROL_API     0x0002  /* init control specific interface */
+
+/* Error values */
+#define        SA_OK                   0
+#define        SA_NO_MEMORY            2       /* no memory for data structures */
+#define        SA_CONFIG_ERR           6       /* system configuration error */
+
 #endif /* _LIBSPL_LIBSHARE_H */
index 1fd162a..850f045 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 0746ded..f8f8294 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 499081a..19b0f3b 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 0a9c6d1..96af2d3 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 27aa363..bfaec7a 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 5daee2b..fb075e8 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 1a28249..32d6a74 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index c8b5004..cad8e6c 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 75ce367..42036a4 100644 (file)
@@ -121,20 +121,21 @@ zfs_share_proto_t share_all_proto[] = {
 };
 
 /*
- * Search the sharetab for the given mountpoint and protocol, returning
+ * Search for NFS and SMB exports for the given mountpoint and protocol, returning
  * a zfs_share_type_t value.
  */
 static zfs_share_type_t
 is_shared(libzfs_handle_t *hdl, const char *mountpoint, zfs_share_proto_t proto)
 {
        char buf[MAXPATHLEN], *tab;
-       char *ptr;
 
        if (hdl->libzfs_sharetab == NULL)
                return (SHARED_NOT_SHARED);
 
        (void) fseek(hdl->libzfs_sharetab, 0, SEEK_SET);
 
+       /* Search /etc/exports for NFS exports */
+       /* FIXME: Assumes the file is tab delimited. */
        while (fgets(buf, sizeof (buf), hdl->libzfs_sharetab) != NULL) {
 
                /* the mountpoint is the first entry on each line */
@@ -143,31 +144,15 @@ is_shared(libzfs_handle_t *hdl, const char *mountpoint, zfs_share_proto_t proto)
 
                *tab = '\0';
                if (strcmp(buf, mountpoint) == 0) {
-                       /*
-                        * the protocol field is the third field
-                        * skip over second field
-                        */
-                       ptr = ++tab;
-                       if ((tab = strchr(ptr, '\t')) == NULL)
-                               continue;
-                       ptr = ++tab;
-                       if ((tab = strchr(ptr, '\t')) == NULL)
-                               continue;
-                       *tab = '\0';
-                       if (strcmp(ptr,
-                           proto_table[proto].p_name) == 0) {
-                               switch (proto) {
-                               case PROTO_NFS:
-                                       return (SHARED_NFS);
-                               case PROTO_SMB:
-                                       return (SHARED_SMB);
-                               default:
-                                       return (0);
-                               }
-                       }
+                       if (proto == PROTO_NFS)
+                               return (SHARED_NFS);
+                       else
+                               return (SHARED_NOT_SHARED);
                }
        }
 
+       /* XXX: Search /etc/samba/smb.conf for SMB exports, return SHARED_SMB */
+
        return (SHARED_NOT_SHARED);
 }
 
@@ -808,10 +793,12 @@ zfs_share_proto(zfs_handle_t *zhp, zfs_share_proto_t *proto)
                return (0);
 
        if ((ret = zfs_init_libshare(hdl, SA_INIT_SHARE_API)) != SA_OK) {
+#ifdef HAVE_SHARE
                (void) zfs_error_fmt(hdl, EZFS_SHARENFSFAILED,
                    dgettext(TEXT_DOMAIN, "cannot share '%s': %s"),
                    zfs_get_name(zhp), _sa_errorstr != NULL ?
                    _sa_errorstr(ret) : "");
+#endif /* HAVE_SHARE */
                return (-1);
        }
 
index 421e55c..209b859 100644 (file)
@@ -64,7 +64,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 47a16fe..3dbed30 100644 (file)
@@ -62,7 +62,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 0a96d97..f3cd856 100644 (file)
@@ -62,7 +62,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 076fc6c..6653bf3 100644 (file)
@@ -63,7 +63,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index fe89e1d..fd95774 100644 (file)
@@ -63,7 +63,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 09f0503..fcb6dfe 100644 (file)
@@ -63,7 +63,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index 71ef3c5..da8b65e 100644 (file)
@@ -63,7 +63,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index d270230..dde427b 100644 (file)
@@ -63,7 +63,6 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/user-frame-larger-than.m4 \
        $(top_srcdir)/config/user-ioctl.m4 \
        $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
        $(top_srcdir)/config/user-libuuid.m4 \
        $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
        $(top_srcdir)/config/user-selinux.m4 \
index e1532f6..f8e2182 100644 (file)
@@ -87,9 +87,6 @@
 /* Define if you have selinux */
 #undef HAVE_LIBSELINUX
 
-/* Define to 1 if 'libshare' library available */
-#undef HAVE_LIBSHARE
-
 /* Define if you have libuuid */
 #undef HAVE_LIBUUID