xa_is_value() is added in kernel 4.19-rc6 to replace
radix_tree_entry_exceptional().
Test-Parameters: trivial clientdistro=el8.1 envdefinitions=ONLY=65i testlist=sanity,sanity,sanity,sanity,sanity
Signed-off-by: Lai Siyao <lai.siyao@whamcloud.com>
Change-Id: If89aa19c37af8a67debe782d1c77f4ef4dc6f923
Reviewed-on: https://review.whamcloud.com/37399
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
]) # LC_INODE_TIMESPEC64
#
+# LC_XA_IS_VALUE
+# kernel 4.19-rc6 commit 3159f943aafdbacb2f94c38fdaadabf2bbde2a14
+# xarray: Replace exceptional entries
+# adds xa_is_value
+#
+AC_DEFUN([LC_XA_IS_VALUE], [
+LB_CHECK_COMPILE([xa_is_value exist],
+xa_is_value, [
+ #include <linux/xarray.h>
+],[
+ xa_is_value(NULL);
+],[
+ AC_DEFINE(HAVE_XA_IS_VALUE, 1, [xa_is_value exist])
+])
+]) # LC_XA_IS_VALUE
+
+#
# LC___XA_SET_MARK
#
# kernel 4.20 commit v4.19-rc5-248-g9b89a0355144
# 4.18
LC_INODE_TIMESPEC64
+ LC_XA_IS_VALUE
# 4.20
LC___XA_SET_MARK
}
#endif
+#ifndef HAVE_XA_IS_VALUE
+static inline bool xa_is_value(void *entry)
+{
+ return radix_tree_exceptional_entry(entry);
+}
+#endif
+
#ifndef HAVE_TRUNCATE_INODE_PAGES_FINAL
static inline void truncate_inode_pages_final(struct address_space *map)
{
xa_lock_irqsave(&mapping->i_pages, flags);
found = radix_tree_gang_lookup(&mapping->page_tree,
(void **)&page, offset, 1);
- if (found > 0 && !radix_tree_exceptional_entry(page)) {
+ if (found > 0 && !xa_is_value(page)) {
struct lu_dirpage *dp;
get_page(page);