]> granicus.if.org Git - zfs/commitdiff
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 09708bf4adc324ea7332977f40af3b4f0dd70372..0d10478d86b922166c35c9a9dd5d5b98c4512b74 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 bed295156b05b49c2f921a5f6162945d5ea96b71..016045a6a65947fe3d0f0e5eb16ef6c6aaf92107 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 b84eb2c0fb78faaa9f1a276cc9bdaa35ee84781e..ce17224a13c07e2ad4d593f0aed72f3fea66cb4f 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 6bd1f3fbdd285458636c79c3199c08389633257a..654a3814e7eba4d371de4255f8ad204ee7f08a8c 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 c2598673eb0c3f61ab20e65447010bbb019aed1b..daced68ab44e2b80f42feb132bcc427a855046d8 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 c30a3e04d2d464ea85d3be48da8df2996e0be58d..69747f368da71f9ef700a3d7dc84be61e78a2af9 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 b628756bdede6bc3a67ee1aa305dffde78b6bbf7..a6f96f7be45cddcd9e1ffc1a96378dbf2892e5b9 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 932bc25f36f77105077eed9810d09211e3f61b6d..5d32e8106ec89ac2c7f997537263ffae9e0fab7e 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 9b1b5ebae96f11a5b84aef70b063354b575fa2bc..ef53493a55cbcf7ef198bfa7c99679164049eff3 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 3b4e7c45e15399784c3af3501266ab9299bcf2ec..ec16a73942b3b5e1688f845bc45be387a1e4ea4d 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 6f0276937ea7cbcc4aae4c972fd8a2bf062ca75d..a79deefe85c4dc06b940a3c2d4283eb0057307d4 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 48bf4cba10514ad5fb848b2bec446b9db5fb07d7..d96270472403d143343066d4ddac0ee0421d8542 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 eb8ad95702f4e53ac1943b3128a4c1ff88a12982..4d39394618af3cf6ee12badb1f840e1603d4c41e 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 7a1f40ab57c4ad8ee79fbec6cf9623583e06da36..851bd8a12d2fad29b74f481a9efb425579c7bce2 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 d3985cc8ed8d1eec7bd26fdd855840f05d23e1a7..2e8af81debe3dc773d046a6840661eb820680124 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 b27565995a41fd3b8e517c41d73f01f56777ae10..4099398b32caaa13518158049a20364aa1db675f 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 e8d289abeedc605a6a1aa887794e9900e3e94de8..ddad52360dd6ebdb802f939321d1669d34e93356 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 d1ee3b2d8e583e94d414e2db469bbb24252d1f7b..903b08d37fff7d7d0d765486b3d88af045d5c51c 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 18ff05229687138cdf602b0b817c953348dbc399..d607102b11cdb1c30cb2cc7095e8cf6be0c4e50b 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 500846a7737ec2077363a0b77be1192781ad3fcc..91590932a32ea0204704a45668a69236ea9b40d5 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 1f4409066866072577ea0ef5b96efc7b9a58e879..7839c13540ff778ffc5c13eff282dd1ffd957ef0 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 e1027d51c6b362eb93ed6d6f0c31f6faea1ec5bf..0bafbab1c82c84f81222a87386f7f003136455eb 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 385a567c6ad460b602db9e07c512f817b855acde..8aa947ab4236d6081a0be5705f4468ad5ba6f59d 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 162c386cac5dd24ecd0487395c61aac1d4b37309..0a8ff7c258fc10d3a70d5fe0bf3eb84afae67c3e 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 9a26bb4d4b7421ffee5a827e91056cbe16b2384d..6ef74836a2f288a41a49479e09f8c751c5fbcccb 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 a00f235b7da7fdd2439b02811e21d99a0a2b54a4..5c1aeafeec786747316e3dd993f8512d205a2833 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 36056005236e3b1faa7fb5802098d22e0e97483d..0f2a688aef74ec4b38d9ba75ffc5bff4b738a671 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 a9f80cde8a6f59eea4d6a18231fe0bc8b73b65c5..d3a8f6fa25bbdaeb6097422839d4345b475993a4 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 fb0fe3f8ce7adbc7d7890e2c073ed177cfd9b7d0..5f7e05fdd555f232408a749d08cd82b7ccbf66bc 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 afbdf5b0568fd0baf2746b180c0e88041cdda6eb..f1fbfad2b4d2473d4297541d455a69f82c3b7250 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 1fd162a470cee997937379bb5eae2b771118ad98..850f045421002ca0e6808c59f82282a02f961887 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 0746ded39efbc6d605ef1418e7dc49d6b25b56f8..f8f8294d9990ebf7d6fb48d1460641bd51a6d092 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 499081af245c7eddc4d0c1c622a2022143fe738a..19b0f3bcb94d8fa7f7a0d7b174e1e9122d63df58 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 0a9c6d1863d678560bb9f8ab076221f469005440..96af2d3b1cf8bf3d5d204ecc93183e1e677a4530 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 27aa363f354062bd53565635ecece65c61a5adb0..bfaec7a2e3a28f893558c65aac3d68b37903a45d 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 5daee2b7330526e92bd0e893c843eb14d021583b..fb075e8bf6d5ad32c4b2c5184f612fe16856d8f4 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 1a28249ae4d4f48e4573b5932f7202b6e71d2883..32d6a7404f4669753e3eaf7121feb20133a4dc5b 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 c8b500466cda8c1b8f07d2915ebce95256553424..cad8e6c3354e40414b6d47409876e04a6f79dd7e 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 75ce3676f2d6b0156dbce25a6731bb1592b715c0..42036a44b8bd30822b963794a2602b5a93653c84 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 421e55cc2044fb5f657145ed56dc700d301aa2b0..209b8594e13b3b1cf2e2ecb09d8ef6498f624333 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 47a16fe64be8fad78ecdbc7e1171163671723fcd..3dbed309472c277e0f6225cd9a3c26544f06315a 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 0a96d97bda03b97e1f63bc2a48abada5e86aedff..f3cd856375f8b14f2ffb0513c7146a693605b6e3 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 076fc6c28e130b79cd49b245c0f060e9b9dead0c..6653bf3851370f787149c8f7192274d34916c3fc 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 fe89e1d003b6bf2d6d1d780f6fd9558eeea29efd..fd95774cbe68ffc1534c53d4b46ae75ef781abf0 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 09f0503c7dcc63349dfd29a36ee70e41c0b6b80c..fcb6dfedde570027a5ddf5294ba4c47534e1436d 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 71ef3c5f2d6ad9a9f986fe5db76bbe4750c0e43c..da8b65e7c5905613d332ee523bede06a94604190 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 d270230fe3ac1664c12c99696a005562fb827344..dde427b3ff6475d586e45ff75910e1c7227f4923 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 e1532f6356fe85d53e9b3a42dc8bd0d9601ce6d0..f8e218259fa7a96a8df2b15094fcbfc7612ca21d 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