From c5d915f4237bbd1f5623b5044a1924a3cb91852b Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 16 Dec 2010 13:47:30 -0800 Subject: [PATCH] Minimal libshare infrastructure 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. --- Makefile.in | 1 - cmd/Makefile.in | 1 - cmd/zdb/Makefile.in | 1 - cmd/zfs/Makefile.in | 1 - cmd/zinject/Makefile.in | 1 - cmd/zpios/Makefile.in | 1 - cmd/zpool/Makefile.in | 1 - cmd/zpool_id/Makefile.in | 1 - cmd/zpool_layout/Makefile.in | 1 - cmd/ztest/Makefile.in | 1 - config/user-libshare.m4 | 8 -- config/user.m4 | 1 - configure | 150 -------------------- etc/Makefile.in | 1 - include/Makefile.in | 1 - include/sys/Makefile.in | 1 - include/sys/fm/Makefile.in | 1 - include/sys/fm/fs/Makefile.in | 1 - include/sys/fs/Makefile.in | 1 - lib/Makefile.in | 1 - lib/libavl/Makefile.in | 1 - lib/libefi/Makefile.in | 1 - lib/libnvpair/Makefile.in | 1 - lib/libspl/Makefile.in | 1 - lib/libspl/asm-generic/Makefile.in | 1 - lib/libspl/asm-i386/Makefile.in | 1 - lib/libspl/asm-x86_64/Makefile.in | 1 - lib/libspl/include/Makefile.in | 1 - lib/libspl/include/ia32/Makefile.in | 1 - lib/libspl/include/ia32/sys/Makefile.in | 1 - lib/libspl/include/libshare.h | 18 ++- lib/libspl/include/rpc/Makefile.in | 1 - lib/libspl/include/sys/Makefile.in | 1 - lib/libspl/include/sys/dktp/Makefile.in | 1 - lib/libspl/include/sys/sysevent/Makefile.in | 1 - lib/libspl/include/util/Makefile.in | 1 - lib/libunicode/Makefile.in | 1 - lib/libuutil/Makefile.in | 1 - lib/libzfs/Makefile.in | 1 - lib/libzfs/libzfs_mount.c | 35 ++--- lib/libzpool/Makefile.in | 1 - man/Makefile.in | 1 - man/man8/Makefile.in | 1 - scripts/Makefile.in | 1 - scripts/zpios-profile/Makefile.in | 1 - scripts/zpios-test/Makefile.in | 1 - scripts/zpool-config/Makefile.in | 1 - scripts/zpool-layout/Makefile.in | 1 - zfs_config.h.in | 3 - 49 files changed, 24 insertions(+), 234 deletions(-) delete mode 100644 config/user-libshare.m4 diff --git a/Makefile.in b/Makefile.in index 09708bf4a..0d10478d8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 \ diff --git a/cmd/Makefile.in b/cmd/Makefile.in index bed295156..016045a6a 100644 --- a/cmd/Makefile.in +++ b/cmd/Makefile.in @@ -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 \ diff --git a/cmd/zdb/Makefile.in b/cmd/zdb/Makefile.in index b84eb2c0f..ce17224a1 100644 --- a/cmd/zdb/Makefile.in +++ b/cmd/zdb/Makefile.in @@ -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/cmd/zfs/Makefile.in b/cmd/zfs/Makefile.in index 6bd1f3fbd..654a3814e 100644 --- a/cmd/zfs/Makefile.in +++ b/cmd/zfs/Makefile.in @@ -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/cmd/zinject/Makefile.in b/cmd/zinject/Makefile.in index c2598673e..daced68ab 100644 --- a/cmd/zinject/Makefile.in +++ b/cmd/zinject/Makefile.in @@ -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/cmd/zpios/Makefile.in b/cmd/zpios/Makefile.in index c30a3e04d..69747f368 100644 --- a/cmd/zpios/Makefile.in +++ b/cmd/zpios/Makefile.in @@ -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/cmd/zpool/Makefile.in b/cmd/zpool/Makefile.in index b628756bd..a6f96f7be 100644 --- a/cmd/zpool/Makefile.in +++ b/cmd/zpool/Makefile.in @@ -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/cmd/zpool_id/Makefile.in b/cmd/zpool_id/Makefile.in index 932bc25f3..5d32e8106 100644 --- a/cmd/zpool_id/Makefile.in +++ b/cmd/zpool_id/Makefile.in @@ -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 \ diff --git a/cmd/zpool_layout/Makefile.in b/cmd/zpool_layout/Makefile.in index 9b1b5ebae..ef53493a5 100644 --- a/cmd/zpool_layout/Makefile.in +++ b/cmd/zpool_layout/Makefile.in @@ -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 \ diff --git a/cmd/ztest/Makefile.in b/cmd/ztest/Makefile.in index 3b4e7c45e..ec16a7394 100644 --- a/cmd/ztest/Makefile.in +++ b/cmd/ztest/Makefile.in @@ -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 index 3b92bbaa5..000000000 --- a/config/user-libshare.m4 +++ /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])]) -]) diff --git a/config/user.m4 b/config/user.m4 index 6f0276937..a79deefe8 100644 --- a/config/user.m4 +++ b/config/user.m4 @@ -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 diff --git a/configure b/configure index 48bf4cba1..d96270472 100755 --- 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 diff --git a/etc/Makefile.in b/etc/Makefile.in index eb8ad9570..4d3939461 100644 --- a/etc/Makefile.in +++ b/etc/Makefile.in @@ -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 \ diff --git a/include/Makefile.in b/include/Makefile.in index 7a1f40ab5..851bd8a12 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -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 \ diff --git a/include/sys/Makefile.in b/include/sys/Makefile.in index d3985cc8e..2e8af81de 100644 --- a/include/sys/Makefile.in +++ b/include/sys/Makefile.in @@ -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 \ diff --git a/include/sys/fm/Makefile.in b/include/sys/fm/Makefile.in index b27565995..4099398b3 100644 --- a/include/sys/fm/Makefile.in +++ b/include/sys/fm/Makefile.in @@ -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 \ diff --git a/include/sys/fm/fs/Makefile.in b/include/sys/fm/fs/Makefile.in index e8d289abe..ddad52360 100644 --- a/include/sys/fm/fs/Makefile.in +++ b/include/sys/fm/fs/Makefile.in @@ -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 \ diff --git a/include/sys/fs/Makefile.in b/include/sys/fs/Makefile.in index d1ee3b2d8..903b08d37 100644 --- a/include/sys/fs/Makefile.in +++ b/include/sys/fs/Makefile.in @@ -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 \ diff --git a/lib/Makefile.in b/lib/Makefile.in index 18ff05229..d607102b1 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -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 \ diff --git a/lib/libavl/Makefile.in b/lib/libavl/Makefile.in index 500846a77..91590932a 100644 --- a/lib/libavl/Makefile.in +++ b/lib/libavl/Makefile.in @@ -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 \ diff --git a/lib/libefi/Makefile.in b/lib/libefi/Makefile.in index 1f4409066..7839c1354 100644 --- a/lib/libefi/Makefile.in +++ b/lib/libefi/Makefile.in @@ -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 \ diff --git a/lib/libnvpair/Makefile.in b/lib/libnvpair/Makefile.in index e1027d51c..0bafbab1c 100644 --- a/lib/libnvpair/Makefile.in +++ b/lib/libnvpair/Makefile.in @@ -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 \ diff --git a/lib/libspl/Makefile.in b/lib/libspl/Makefile.in index 385a567c6..8aa947ab4 100644 --- a/lib/libspl/Makefile.in +++ b/lib/libspl/Makefile.in @@ -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 \ diff --git a/lib/libspl/asm-generic/Makefile.in b/lib/libspl/asm-generic/Makefile.in index 162c386ca..0a8ff7c25 100644 --- a/lib/libspl/asm-generic/Makefile.in +++ b/lib/libspl/asm-generic/Makefile.in @@ -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 \ diff --git a/lib/libspl/asm-i386/Makefile.in b/lib/libspl/asm-i386/Makefile.in index 9a26bb4d4..6ef74836a 100644 --- a/lib/libspl/asm-i386/Makefile.in +++ b/lib/libspl/asm-i386/Makefile.in @@ -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 \ diff --git a/lib/libspl/asm-x86_64/Makefile.in b/lib/libspl/asm-x86_64/Makefile.in index a00f235b7..5c1aeafee 100644 --- a/lib/libspl/asm-x86_64/Makefile.in +++ b/lib/libspl/asm-x86_64/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/Makefile.in b/lib/libspl/include/Makefile.in index 360560052..0f2a688ae 100644 --- a/lib/libspl/include/Makefile.in +++ b/lib/libspl/include/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/ia32/Makefile.in b/lib/libspl/include/ia32/Makefile.in index a9f80cde8..d3a8f6fa2 100644 --- a/lib/libspl/include/ia32/Makefile.in +++ b/lib/libspl/include/ia32/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/ia32/sys/Makefile.in b/lib/libspl/include/ia32/sys/Makefile.in index fb0fe3f8c..5f7e05fdd 100644 --- a/lib/libspl/include/ia32/sys/Makefile.in +++ b/lib/libspl/include/ia32/sys/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/libshare.h b/lib/libspl/include/libshare.h index afbdf5b05..f1fbfad2b 100644 --- a/lib/libspl/include/libshare.h +++ b/lib/libspl/include/libshare.h @@ -23,12 +23,20 @@ * 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 */ diff --git a/lib/libspl/include/rpc/Makefile.in b/lib/libspl/include/rpc/Makefile.in index 1fd162a47..850f04542 100644 --- a/lib/libspl/include/rpc/Makefile.in +++ b/lib/libspl/include/rpc/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/sys/Makefile.in b/lib/libspl/include/sys/Makefile.in index 0746ded39..f8f8294d9 100644 --- a/lib/libspl/include/sys/Makefile.in +++ b/lib/libspl/include/sys/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/sys/dktp/Makefile.in b/lib/libspl/include/sys/dktp/Makefile.in index 499081af2..19b0f3bcb 100644 --- a/lib/libspl/include/sys/dktp/Makefile.in +++ b/lib/libspl/include/sys/dktp/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/sys/sysevent/Makefile.in b/lib/libspl/include/sys/sysevent/Makefile.in index 0a9c6d186..96af2d3b1 100644 --- a/lib/libspl/include/sys/sysevent/Makefile.in +++ b/lib/libspl/include/sys/sysevent/Makefile.in @@ -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 \ diff --git a/lib/libspl/include/util/Makefile.in b/lib/libspl/include/util/Makefile.in index 27aa363f3..bfaec7a2e 100644 --- a/lib/libspl/include/util/Makefile.in +++ b/lib/libspl/include/util/Makefile.in @@ -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 \ diff --git a/lib/libunicode/Makefile.in b/lib/libunicode/Makefile.in index 5daee2b73..fb075e8bf 100644 --- a/lib/libunicode/Makefile.in +++ b/lib/libunicode/Makefile.in @@ -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 \ diff --git a/lib/libuutil/Makefile.in b/lib/libuutil/Makefile.in index 1a28249ae..32d6a7404 100644 --- a/lib/libuutil/Makefile.in +++ b/lib/libuutil/Makefile.in @@ -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 \ diff --git a/lib/libzfs/Makefile.in b/lib/libzfs/Makefile.in index c8b500466..cad8e6c33 100644 --- a/lib/libzfs/Makefile.in +++ b/lib/libzfs/Makefile.in @@ -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 \ diff --git a/lib/libzfs/libzfs_mount.c b/lib/libzfs/libzfs_mount.c index 75ce3676f..42036a44b 100644 --- a/lib/libzfs/libzfs_mount.c +++ b/lib/libzfs/libzfs_mount.c @@ -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); } diff --git a/lib/libzpool/Makefile.in b/lib/libzpool/Makefile.in index 421e55cc2..209b8594e 100644 --- a/lib/libzpool/Makefile.in +++ b/lib/libzpool/Makefile.in @@ -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 \ diff --git a/man/Makefile.in b/man/Makefile.in index 47a16fe64..3dbed3094 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -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 \ diff --git a/man/man8/Makefile.in b/man/man8/Makefile.in index 0a96d97bd..f3cd85637 100644 --- a/man/man8/Makefile.in +++ b/man/man8/Makefile.in @@ -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 \ diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 076fc6c28..6653bf385 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -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 \ diff --git a/scripts/zpios-profile/Makefile.in b/scripts/zpios-profile/Makefile.in index fe89e1d00..fd95774cb 100644 --- a/scripts/zpios-profile/Makefile.in +++ b/scripts/zpios-profile/Makefile.in @@ -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 \ diff --git a/scripts/zpios-test/Makefile.in b/scripts/zpios-test/Makefile.in index 09f0503c7..fcb6dfedd 100644 --- a/scripts/zpios-test/Makefile.in +++ b/scripts/zpios-test/Makefile.in @@ -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 \ diff --git a/scripts/zpool-config/Makefile.in b/scripts/zpool-config/Makefile.in index 71ef3c5f2..da8b65e7c 100644 --- a/scripts/zpool-config/Makefile.in +++ b/scripts/zpool-config/Makefile.in @@ -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 \ diff --git a/scripts/zpool-layout/Makefile.in b/scripts/zpool-layout/Makefile.in index d270230fe..dde427b3f 100644 --- a/scripts/zpool-layout/Makefile.in +++ b/scripts/zpool-layout/Makefile.in @@ -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 \ diff --git a/zfs_config.h.in b/zfs_config.h.in index e1532f635..f8e218259 100644 --- a/zfs_config.h.in +++ b/zfs_config.h.in @@ -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