dnl # * /var/lib/dkms/zfs/${VERSION}/source
dnl # * /usr/src/zfs-${VERSION}/${LINUXRELEASE}
dnl # * /usr/src/zfs-${VERSION}
-dnl # * ../spl/
-dnl # * $LINUX
+dnl # * ../zfs/
+dnl # * $LINUX/zfs
dnl #
dnl # --with-zfs-devel=path
dnl # - User provided directory where zfs development headers
dnl # * /usr/src/spl-${VERSION}/${LINUXRELEASE}
dnl # * /usr/src/spl-${VERSION}
dnl # * ../spl/
-dnl # * $LINUX
+dnl # * $LINUX/spl
dnl #
dnl # --with-spl=path - Enable spl support and use the spl headers in the
dnl # provided path. No autodetection is performed.
splsrc1="/usr/src/spl-${splver}/${LINUXRELEASE}"
splsrc2="/usr/src/spl-${splver}"
splsrc3="../spl/"
- splsrc4="$LINUX"
+ splsrc4="$LINUX/spl"
AC_MSG_CHECKING([spl source directory])
AS_IF([test -z "${splsrc}"], [
zfssrc1="/usr/src/zfs-${zfsver}/${LINUXRELEASE}"
zfssrc2="/usr/src/zfs-${zfsver}"
zfssrc3="../zfs/"
- zfssrc4="$LINUX"
+ zfssrc4="$LINUX/zfs"
AC_MSG_CHECKING([zfs source directory])
AS_IF([test -z "${zfssrc}"], [
AC_MSG_RESULT([$zfsinc])
ZFS_LIBZFS_INCLUDE=${zfsinc}
- ZFS_LIBZFS_LDFLAGS="-lzfs -lnvpair ${zfslib}"
+ ZFS_LIBZFS_LDFLAGS=${zfslib}
+ ZFS_LIBZFS_LIBS="-lzfs -lnvpair"
AC_SUBST(ZFS_LIBZFS_INCLUDE)
AC_SUBST(ZFS_LIBZFS_LDFLAGS)
+ AC_SUBST(ZFS_LIBZFS_LIBS)
])
AC_DEFUN([LB_CONFIG_ZFS], [
dnl #
dnl # ZFS 0.7.0 feature: SPA_FEATURE_USEROBJ_ACCOUNTING
dnl #
- LB_CHECK_COMPILE([if zfs has native dnode accounting supported],
- dmu_objset_id_quota_upgrade, [
+ LB_CHECK_COMPILE([if ZFS has native dnode accounting supported],
+ dmu_objset_userobjused_enabled, [
#include <sys/dmu_objset.h>
],[
- dmu_objset_id_quota_upgrade(NULL);
+ dmu_objset_userobjused_enabled(NULL);
],[
AC_DEFINE(HAVE_DMU_USEROBJ_ACCOUNTING, 1,
[Have native dnode accounting in ZFS])
])
+ dnl #
+ dnl # ZFS 0.7.0 feature: MULTIHOST
+ dnl #
+ LB_CHECK_COMPILE([if ZFS has multihost protection],
+ spa_multihost, [
+ #include <sys/spa.h>
+ ],[
+ spa_multihost(NULL);
+ ],[
+ AC_DEFINE(HAVE_ZFS_MULTIHOST, 1,
+ [Have multihost protection in ZFS])
+ ])
+ dnl #
dnl # ZFS 0.7.x adds new method zap_lookup_by_dnode
dnl #
LB_CHECK_COMPILE([if ZFS has 'zap_lookup_by_dnode'],
[Have dmu_read_by_dnode() in ZFS])
])
dnl #
+ dnl # ZFS 0.7.2 adds new method dmu_tx_mark_netfree
+ dnl #
+ LB_CHECK_COMPILE([if ZFS has 'dmu_tx_mark_netfree'],
+ dmu_tx_mark_netfree, [
+ #include <sys/dmu.h>
+ ],[
+ dmu_tx_t *tx = NULL;
+ dmu_tx_mark_netfree(tx);
+ ],[
+ AC_DEFINE(HAVE_DMU_TX_MARK_NETFREE, 1,
+ [Have dmu_tx_mark_netfree])
+ ])
+ dnl #
+ dnl # ZFS 0.7.10 changes timestruc_t to inode_timespec_t
+ dnl #
+ LB_CHECK_COMPILE([if SPL has 'inode_timespec_t'],
+ zfs_have_inode_timespec, [
+ #include <sys/fs/zfs.h>
+ ],[
+ inode_timespec_t now;
+ gethrestime(&now);
+ ],[
+ AC_DEFINE(HAVE_ZFS_INODE_TIMESPEC, 1,
+ [Have inode_timespec_t])
+ ])
+ dnl # ZFS 0.7.12/0.8.x uses zfs_refcount_add() instead of
+ dnl # refcount_add().
+ dnl #
+ LB_CHECK_COMPILE([if ZFS has 'zfs_refcount_add'],
+ zfs_refcount_add, [
+ #include <sys/refcount.h>
+ ],[
+ zfs_refcount_add((zfs_refcount_t *) NULL, NULL);
+ ],[
+ AC_DEFINE(HAVE_ZFS_REFCOUNT_ADD, 1,
+ [Have zfs_refcount_add])
+ ])
+ dnl #
dnl # ZFS 0.8.x changes dmu_objset_own for encryption
dnl #
LB_CHECK_COMPILE([if ZFS has 'dmu_objset_own' with 6 args],
],[
objset_t *os = NULL;
dmu_objset_type_t type = DMU_OST_ANY;
- dmu_objset_own(NULL, type, B_FALSE, B_FALSE, FTAG, &os);
+ dmu_objset_own(NULL, type, B_FALSE, B_TRUE, FTAG, &os);
],[
AC_DEFINE(HAVE_DMU_OBJSET_OWN_6ARG, 1,
[Have dmu_objset_own() with 6 args])
#include <sys/dmu_objset.h>
],[
objset_t *os = NULL;
- dmu_objset_disown(os, B_FALSE, FTAG);
+ dmu_objset_disown(os, B_TRUE, FTAG);
],[
AC_DEFINE(HAVE_DMU_OBJSET_DISOWN_3ARG, 1,
[Have dmu_objset_disown() with 3 args])