In recent kernels, radix_tree_root has been replaced by xarray. lookup_swap_cache() needs to switch depending on what type i_pages in address_space structure has. See the following commit of linux kernel git repository for reference: eb797a8ee0ab4cd03df556980ce7bf167cadaa50 page cache: Rearrange address_space --- diskdump.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/diskdump.c b/diskdump.c index 572ef70..88d0dee 100644 --- a/diskdump.c +++ b/diskdump.c @@ -2657,6 +2657,11 @@ lookup_swap_cache(ulonglong pte_val, unsigned char *zram_buf) ulong swp_type, swp_space, page; struct list_pair lp; physaddr_t paddr; + static int is_xarray = -1; + + if (is_xarray < 0) { + is_xarray = STREQ(MEMBER_TYPE_NAME("address_space", "i_pages"), "xarray"); + } swp_type = __swp_type(pte_val); if (THIS_KERNEL_VERSION >= LINUX(2,6,0)) { @@ -2675,7 +2680,7 @@ lookup_swap_cache(ulonglong pte_val, unsigned char *zram_buf) swp_space += (swp_offset >> SWAP_ADDRESS_SPACE_SHIFT) * SIZE(address_space); lp.index = swp_offset; - if (do_radix_tree(swp_space, RADIX_TREE_SEARCH, &lp)){ + if ((is_xarray ? do_xarray : do_radix_tree)(swp_space, RADIX_TREE_SEARCH, &lp)) { readmem((ulong)lp.value, KVADDR, &page, sizeof(void *), "swap_cache page", FAULT_ON_ERROR); if (!is_page_ptr(page, &paddr)) { -- 1.8.3.1 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility