refcount_add was removed from ZFS master in:
Linux 4.19-rc3+ compat: Remove refcount_t compat
https://github.com/zfsonlinux/zfs/pull/7932
It is expected to be removed in zfs-0.7.12 as well. Update Lustre
to use zfs_refcount_add if zfs supports it, and fall back to
refcount_add if not.
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Change-Id: Ib1b2ff13eb4ff8c56dd49a427b9827c6649ecd31
Reviewed-on: https://review.whamcloud.com/33359
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Nathaniel Clark <nclark@whamcloud.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
AC_DEFINE(HAVE_ZFS_INODE_TIMESPEC, 1,
[Have inode_timespec_t])
])
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])
+ ])
])
AS_IF([test "x$enable_zfs" = xyes], [
])
AS_IF([test "x$enable_zfs" = xyes], [
#define OSD_MAX_CACHE_SIZE OBD_OBJECT_EOF
#define OSD_MAX_CACHE_SIZE OBD_OBJECT_EOF
+#ifndef HAVE_ZFS_REFCOUNT_ADD
+#define zfs_refcount_add refcount_add
+#endif
+
extern struct dt_body_operations osd_body_scrub_ops;
/**
extern struct dt_body_operations osd_body_scrub_ops;
/**
SA_HDL_PRIVATE, &obj->oo_sa_hdl);
if (rc)
return rc;
SA_HDL_PRIVATE, &obj->oo_sa_hdl);
if (rc)
return rc;
- refcount_add(&dn->dn_bonus->db_holds, osd_obj_tag);
+ zfs_refcount_add(&dn->dn_bonus->db_holds, osd_obj_tag);
LASSERT(db);
LASSERT(dn->dn_handle);
DB_DNODE_ENTER(db);
LASSERT(db);
LASSERT(dn->dn_handle);
DB_DNODE_ENTER(db);
- if (refcount_add(&db->db_holds, osd_obj_tag) == 1) {
- refcount_add(&dn->dn_holds, osd_obj_tag);
+ if (zfs_refcount_add(&db->db_holds, osd_obj_tag) == 1) {
+ zfs_refcount_add(&dn->dn_holds, osd_obj_tag);
atomic_inc_32(&dn->dn_dbufs_count);
}
*dnp = dn;
atomic_inc_32(&dn->dn_dbufs_count);
}
*dnp = dn;