return *(unsigned long *)handle;
 }
 
-static inline bool obj_allocated(struct page *page, void *obj,
+static inline bool obj_allocated(struct zpdesc *zpdesc, void *obj,
                                 unsigned long *phandle)
 {
        unsigned long handle;
-       struct zspage *zspage = get_zspage(page);
+       struct zspage *zspage = get_zspage(zpdesc_page(zpdesc));
 
        if (unlikely(ZsHugePage(zspage))) {
-               VM_BUG_ON_PAGE(!is_first_page(page), page);
-               handle = page->index;
+               VM_BUG_ON_PAGE(!is_first_zpdesc(zpdesc), zpdesc_page(zpdesc));
+               handle = zpdesc->handle;
        } else
                handle = *(unsigned long *)obj;
 
  * return handle.
  */
 static unsigned long find_alloced_obj(struct size_class *class,
-                                     struct page *page, int *obj_idx)
+                                     struct zpdesc *zpdesc, int *obj_idx)
 {
        unsigned int offset;
        int index = *obj_idx;
        unsigned long handle = 0;
-       void *addr = kmap_local_page(page);
+       void *addr = kmap_local_zpdesc(zpdesc);
 
-       offset = get_first_obj_offset(page);
+       offset = get_first_obj_offset(zpdesc_page(zpdesc));
        offset += class->size * index;
 
        while (offset < PAGE_SIZE) {
-               if (obj_allocated(page, addr + offset, &handle))
+               if (obj_allocated(zpdesc, addr + offset, &handle))
                        break;
 
                offset += class->size;
        struct size_class *class = pool->size_class[src_zspage->class];
 
        while (1) {
-               handle = find_alloced_obj(class, s_page, &obj_idx);
+               handle = find_alloced_obj(class, page_zpdesc(s_page), &obj_idx);
                if (!handle) {
                        s_page = get_next_page(s_page);
                        if (!s_page)
 
        for (addr = s_addr + offset; addr < s_addr + PAGE_SIZE;
                                        addr += class->size) {
-               if (obj_allocated(page, addr, &handle)) {
+               if (obj_allocated(page_zpdesc(page), addr, &handle)) {
 
                        old_obj = handle_to_obj(handle);
                        obj_to_location(old_obj, &dummy, &obj_idx);