zhdr 301 mm/z3fold.c struct z3fold_header *zhdr = page_address(page); zhdr 311 mm/z3fold.c return zhdr; zhdr 317 mm/z3fold.c spin_lock_init(&zhdr->page_lock); zhdr 318 mm/z3fold.c kref_init(&zhdr->refcount); zhdr 319 mm/z3fold.c zhdr->first_chunks = 0; zhdr 320 mm/z3fold.c zhdr->middle_chunks = 0; zhdr 321 mm/z3fold.c zhdr->last_chunks = 0; zhdr 322 mm/z3fold.c zhdr->first_num = 0; zhdr 323 mm/z3fold.c zhdr->start_middle = 0; zhdr 324 mm/z3fold.c zhdr->cpu = -1; zhdr 325 mm/z3fold.c zhdr->slots = slots; zhdr 326 mm/z3fold.c zhdr->pool = pool; zhdr 327 mm/z3fold.c INIT_LIST_HEAD(&zhdr->buddy); zhdr 328 mm/z3fold.c INIT_WORK(&zhdr->work, compact_page_work); zhdr 329 mm/z3fold.c return zhdr; zhdr 345 mm/z3fold.c static inline void z3fold_page_lock(struct z3fold_header *zhdr) zhdr 347 mm/z3fold.c spin_lock(&zhdr->page_lock); zhdr 351 mm/z3fold.c static inline int z3fold_page_trylock(struct z3fold_header *zhdr) zhdr 353 mm/z3fold.c return spin_trylock(&zhdr->page_lock); zhdr 357 mm/z3fold.c static inline void z3fold_page_unlock(struct z3fold_header *zhdr) zhdr 359 mm/z3fold.c spin_unlock(&zhdr->page_lock); zhdr 363 mm/z3fold.c static inline int __idx(struct z3fold_header *zhdr, enum buddy bud) zhdr 365 mm/z3fold.c return (bud + zhdr->first_num) & BUDDY_MASK; zhdr 372 mm/z3fold.c static unsigned long __encode_handle(struct z3fold_header *zhdr, zhdr 376 mm/z3fold.c unsigned long h = (unsigned long)zhdr; zhdr 387 mm/z3fold.c idx = __idx(zhdr, bud); zhdr 390 mm/z3fold.c h |= (zhdr->last_chunks << BUDDY_SHIFT); zhdr 396 mm/z3fold.c static unsigned long encode_handle(struct z3fold_header *zhdr, enum buddy bud) zhdr 398 mm/z3fold.c return __encode_handle(zhdr, zhdr->slots, bud); zhdr 427 mm/z3fold.c struct z3fold_header *zhdr; zhdr 432 mm/z3fold.c zhdr = (struct z3fold_header *)(addr & PAGE_MASK); zhdr 433 mm/z3fold.c return (addr - zhdr->first_num) & BUDDY_MASK; zhdr 436 mm/z3fold.c static inline struct z3fold_pool *zhdr_to_pool(struct z3fold_header *zhdr) zhdr 438 mm/z3fold.c return zhdr->pool; zhdr 441 mm/z3fold.c static void __release_z3fold_page(struct z3fold_header *zhdr, bool locked) zhdr 443 mm/z3fold.c struct page *page = virt_to_page(zhdr); zhdr 444 mm/z3fold.c struct z3fold_pool *pool = zhdr_to_pool(zhdr); zhdr 446 mm/z3fold.c WARN_ON(!list_empty(&zhdr->buddy)); zhdr 454 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 456 mm/z3fold.c list_add(&zhdr->buddy, &pool->stale); zhdr 464 mm/z3fold.c struct z3fold_header *zhdr = container_of(ref, struct z3fold_header, zhdr 466 mm/z3fold.c __release_z3fold_page(zhdr, false); zhdr 471 mm/z3fold.c struct z3fold_header *zhdr = container_of(ref, struct z3fold_header, zhdr 473 mm/z3fold.c WARN_ON(z3fold_page_trylock(zhdr)); zhdr 474 mm/z3fold.c __release_z3fold_page(zhdr, true); zhdr 479 mm/z3fold.c struct z3fold_header *zhdr = container_of(ref, struct z3fold_header, zhdr 481 mm/z3fold.c struct z3fold_pool *pool = zhdr_to_pool(zhdr); zhdr 483 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 486 mm/z3fold.c WARN_ON(z3fold_page_trylock(zhdr)); zhdr 487 mm/z3fold.c __release_z3fold_page(zhdr, true); zhdr 496 mm/z3fold.c struct z3fold_header *zhdr = list_first_entry(&pool->stale, zhdr 498 mm/z3fold.c struct page *page = virt_to_page(zhdr); zhdr 500 mm/z3fold.c list_del(&zhdr->buddy); zhdr 504 mm/z3fold.c cancel_work_sync(&zhdr->work); zhdr 516 mm/z3fold.c static int num_free_chunks(struct z3fold_header *zhdr) zhdr 524 mm/z3fold.c if (zhdr->middle_chunks != 0) { zhdr 525 mm/z3fold.c int nfree_before = zhdr->first_chunks ? zhdr 526 mm/z3fold.c 0 : zhdr->start_middle - ZHDR_CHUNKS; zhdr 527 mm/z3fold.c int nfree_after = zhdr->last_chunks ? zhdr 529 mm/z3fold.c (zhdr->start_middle + zhdr->middle_chunks); zhdr 532 mm/z3fold.c nfree = NCHUNKS - zhdr->first_chunks - zhdr->last_chunks; zhdr 538 mm/z3fold.c struct z3fold_header *zhdr) zhdr 540 mm/z3fold.c if (zhdr->first_chunks == 0 || zhdr->last_chunks == 0 || zhdr 541 mm/z3fold.c zhdr->middle_chunks == 0) { zhdr 544 mm/z3fold.c int freechunks = num_free_chunks(zhdr); zhdr 546 mm/z3fold.c list_add(&zhdr->buddy, &unbuddied[freechunks]); zhdr 548 mm/z3fold.c zhdr->cpu = smp_processor_id(); zhdr 553 mm/z3fold.c static inline void *mchunk_memmove(struct z3fold_header *zhdr, zhdr 556 mm/z3fold.c void *beg = zhdr; zhdr 558 mm/z3fold.c beg + (zhdr->start_middle << CHUNK_SHIFT), zhdr 559 mm/z3fold.c zhdr->middle_chunks << CHUNK_SHIFT); zhdr 564 mm/z3fold.c static int z3fold_compact_page(struct z3fold_header *zhdr) zhdr 566 mm/z3fold.c struct page *page = virt_to_page(zhdr); zhdr 574 mm/z3fold.c if (zhdr->middle_chunks == 0) zhdr 577 mm/z3fold.c if (zhdr->first_chunks == 0 && zhdr->last_chunks == 0) { zhdr 579 mm/z3fold.c mchunk_memmove(zhdr, ZHDR_CHUNKS); zhdr 580 mm/z3fold.c zhdr->first_chunks = zhdr->middle_chunks; zhdr 581 mm/z3fold.c zhdr->middle_chunks = 0; zhdr 582 mm/z3fold.c zhdr->start_middle = 0; zhdr 583 mm/z3fold.c zhdr->first_num++; zhdr 591 mm/z3fold.c if (zhdr->first_chunks != 0 && zhdr->last_chunks == 0 && zhdr 592 mm/z3fold.c zhdr->start_middle - (zhdr->first_chunks + ZHDR_CHUNKS) >= zhdr 594 mm/z3fold.c mchunk_memmove(zhdr, zhdr->first_chunks + ZHDR_CHUNKS); zhdr 595 mm/z3fold.c zhdr->start_middle = zhdr->first_chunks + ZHDR_CHUNKS; zhdr 597 mm/z3fold.c } else if (zhdr->last_chunks != 0 && zhdr->first_chunks == 0 && zhdr 598 mm/z3fold.c TOTAL_CHUNKS - (zhdr->last_chunks + zhdr->start_middle zhdr 599 mm/z3fold.c + zhdr->middle_chunks) >= zhdr 601 mm/z3fold.c unsigned short new_start = TOTAL_CHUNKS - zhdr->last_chunks - zhdr 602 mm/z3fold.c zhdr->middle_chunks; zhdr 603 mm/z3fold.c mchunk_memmove(zhdr, new_start); zhdr 604 mm/z3fold.c zhdr->start_middle = new_start; zhdr 611 mm/z3fold.c static void do_compact_page(struct z3fold_header *zhdr, bool locked) zhdr 613 mm/z3fold.c struct z3fold_pool *pool = zhdr_to_pool(zhdr); zhdr 616 mm/z3fold.c page = virt_to_page(zhdr); zhdr 618 mm/z3fold.c WARN_ON(z3fold_page_trylock(zhdr)); zhdr 620 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 622 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 626 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 629 mm/z3fold.c if (kref_put(&zhdr->refcount, release_z3fold_page_locked)) { zhdr 637 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 641 mm/z3fold.c z3fold_compact_page(zhdr); zhdr 642 mm/z3fold.c add_to_unbuddied(pool, zhdr); zhdr 643 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 648 mm/z3fold.c struct z3fold_header *zhdr = container_of(w, struct z3fold_header, zhdr 651 mm/z3fold.c do_compact_page(zhdr, false); zhdr 658 mm/z3fold.c struct z3fold_header *zhdr = NULL; zhdr 669 mm/z3fold.c zhdr = list_first_entry_or_null(READ_ONCE(l), zhdr 672 mm/z3fold.c if (!zhdr) zhdr 678 mm/z3fold.c if (unlikely(zhdr != list_first_entry(READ_ONCE(l), zhdr 680 mm/z3fold.c !z3fold_page_trylock(zhdr)) { zhdr 682 mm/z3fold.c zhdr = NULL; zhdr 688 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 689 mm/z3fold.c zhdr->cpu = -1; zhdr 692 mm/z3fold.c page = virt_to_page(zhdr); zhdr 694 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 695 mm/z3fold.c zhdr = NULL; zhdr 708 mm/z3fold.c kref_get(&zhdr->refcount); zhdr 713 mm/z3fold.c if (!zhdr) { zhdr 724 mm/z3fold.c zhdr = list_first_entry_or_null(READ_ONCE(l), zhdr 727 mm/z3fold.c if (!zhdr || !z3fold_page_trylock(zhdr)) { zhdr 729 mm/z3fold.c zhdr = NULL; zhdr 732 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 733 mm/z3fold.c zhdr->cpu = -1; zhdr 736 mm/z3fold.c page = virt_to_page(zhdr); zhdr 738 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 739 mm/z3fold.c zhdr = NULL; zhdr 744 mm/z3fold.c kref_get(&zhdr->refcount); zhdr 749 mm/z3fold.c return zhdr; zhdr 868 mm/z3fold.c struct z3fold_header *zhdr = NULL; zhdr 883 mm/z3fold.c zhdr = __z3fold_alloc(pool, size, can_sleep); zhdr 884 mm/z3fold.c if (zhdr) { zhdr 885 mm/z3fold.c if (zhdr->first_chunks == 0) { zhdr 886 mm/z3fold.c if (zhdr->middle_chunks != 0 && zhdr 887 mm/z3fold.c chunks >= zhdr->start_middle) zhdr 891 mm/z3fold.c } else if (zhdr->last_chunks == 0) zhdr 893 mm/z3fold.c else if (zhdr->middle_chunks == 0) zhdr 896 mm/z3fold.c if (kref_put(&zhdr->refcount, zhdr 900 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 905 mm/z3fold.c page = virt_to_page(zhdr); zhdr 914 mm/z3fold.c zhdr = list_first_entry_or_null(&pool->stale, zhdr 921 mm/z3fold.c if (zhdr) { zhdr 922 mm/z3fold.c list_del(&zhdr->buddy); zhdr 924 mm/z3fold.c cancel_work_sync(&zhdr->work); zhdr 925 mm/z3fold.c page = virt_to_page(zhdr); zhdr 936 mm/z3fold.c zhdr = init_z3fold_page(page, bud == HEADLESS, pool, gfp); zhdr 937 mm/z3fold.c if (!zhdr) { zhdr 957 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 961 mm/z3fold.c zhdr->first_chunks = chunks; zhdr 963 mm/z3fold.c zhdr->last_chunks = chunks; zhdr 965 mm/z3fold.c zhdr->middle_chunks = chunks; zhdr 966 mm/z3fold.c zhdr->start_middle = zhdr->first_chunks + ZHDR_CHUNKS; zhdr 968 mm/z3fold.c add_to_unbuddied(pool, zhdr); zhdr 978 mm/z3fold.c *handle = encode_handle(zhdr, bud); zhdr 981 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 998 mm/z3fold.c struct z3fold_header *zhdr; zhdr 1003 mm/z3fold.c zhdr = handle_to_z3fold_header(handle); zhdr 1004 mm/z3fold.c page = virt_to_page(zhdr); zhdr 1024 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 1029 mm/z3fold.c zhdr->first_chunks = 0; zhdr 1032 mm/z3fold.c zhdr->middle_chunks = 0; zhdr 1035 mm/z3fold.c zhdr->last_chunks = 0; zhdr 1040 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1045 mm/z3fold.c if (kref_put(&zhdr->refcount, release_z3fold_page_locked_list)) { zhdr 1051 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1056 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1060 mm/z3fold.c if (zhdr->cpu < 0 || !cpu_online(zhdr->cpu)) { zhdr 1062 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 1064 mm/z3fold.c zhdr->cpu = -1; zhdr 1065 mm/z3fold.c kref_get(&zhdr->refcount); zhdr 1066 mm/z3fold.c do_compact_page(zhdr, true); zhdr 1070 mm/z3fold.c kref_get(&zhdr->refcount); zhdr 1071 mm/z3fold.c queue_work_on(zhdr->cpu, pool->compact_wq, &zhdr->work); zhdr 1073 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1115 mm/z3fold.c struct z3fold_header *zhdr = NULL; zhdr 1147 mm/z3fold.c zhdr = page_address(page); zhdr 1151 mm/z3fold.c if (!z3fold_page_trylock(zhdr)) { zhdr 1153 mm/z3fold.c zhdr = NULL; zhdr 1156 mm/z3fold.c kref_get(&zhdr->refcount); zhdr 1157 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 1158 mm/z3fold.c zhdr->cpu = -1; zhdr 1162 mm/z3fold.c if (!zhdr) zhdr 1178 mm/z3fold.c if (zhdr->first_chunks) zhdr 1179 mm/z3fold.c first_handle = __encode_handle(zhdr, &slots, zhdr 1181 mm/z3fold.c if (zhdr->middle_chunks) zhdr 1182 mm/z3fold.c middle_handle = __encode_handle(zhdr, &slots, zhdr 1184 mm/z3fold.c if (zhdr->last_chunks) zhdr 1185 mm/z3fold.c last_handle = __encode_handle(zhdr, &slots, zhdr 1191 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1193 mm/z3fold.c first_handle = __encode_handle(zhdr, &slots, HEADLESS); zhdr 1225 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 1226 mm/z3fold.c if (kref_put(&zhdr->refcount, zhdr 1239 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1262 mm/z3fold.c struct z3fold_header *zhdr; zhdr 1267 mm/z3fold.c zhdr = handle_to_z3fold_header(handle); zhdr 1268 mm/z3fold.c addr = zhdr; zhdr 1269 mm/z3fold.c page = virt_to_page(zhdr); zhdr 1274 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 1281 mm/z3fold.c addr += zhdr->start_middle << CHUNK_SHIFT; zhdr 1295 mm/z3fold.c zhdr->mapped_count++; zhdr 1296 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1308 mm/z3fold.c struct z3fold_header *zhdr; zhdr 1312 mm/z3fold.c zhdr = handle_to_z3fold_header(handle); zhdr 1313 mm/z3fold.c page = virt_to_page(zhdr); zhdr 1318 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 1322 mm/z3fold.c zhdr->mapped_count--; zhdr 1323 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1339 mm/z3fold.c struct z3fold_header *zhdr; zhdr 1349 mm/z3fold.c zhdr = page_address(page); zhdr 1350 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 1355 mm/z3fold.c pool = zhdr_to_pool(zhdr); zhdr 1357 mm/z3fold.c if (zhdr->mapped_count == 0) { zhdr 1358 mm/z3fold.c kref_get(&zhdr->refcount); zhdr 1359 mm/z3fold.c if (!list_empty(&zhdr->buddy)) zhdr 1360 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 1365 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1369 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1376 mm/z3fold.c struct z3fold_header *zhdr, *new_zhdr; zhdr 1384 mm/z3fold.c zhdr = page_address(page); zhdr 1385 mm/z3fold.c pool = zhdr_to_pool(zhdr); zhdr 1387 mm/z3fold.c if (!z3fold_page_trylock(zhdr)) { zhdr 1390 mm/z3fold.c if (zhdr->mapped_count != 0) { zhdr 1391 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1394 mm/z3fold.c if (work_pending(&zhdr->work)) { zhdr 1395 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1399 mm/z3fold.c memcpy(new_zhdr, zhdr, PAGE_SIZE); zhdr 1402 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 1439 mm/z3fold.c struct z3fold_header *zhdr; zhdr 1442 mm/z3fold.c zhdr = page_address(page); zhdr 1443 mm/z3fold.c pool = zhdr_to_pool(zhdr); zhdr 1445 mm/z3fold.c z3fold_page_lock(zhdr); zhdr 1446 mm/z3fold.c if (!list_empty(&zhdr->buddy)) zhdr 1447 mm/z3fold.c list_del_init(&zhdr->buddy); zhdr 1449 mm/z3fold.c if (kref_put(&zhdr->refcount, release_z3fold_page_locked)) { zhdr 1456 mm/z3fold.c z3fold_page_unlock(zhdr); zhdr 241 mm/zbud.c struct zbud_header *zhdr = page_address(page); zhdr 242 mm/zbud.c zhdr->first_chunks = 0; zhdr 243 mm/zbud.c zhdr->last_chunks = 0; zhdr 244 mm/zbud.c INIT_LIST_HEAD(&zhdr->buddy); zhdr 245 mm/zbud.c INIT_LIST_HEAD(&zhdr->lru); zhdr 246 mm/zbud.c zhdr->under_reclaim = 0; zhdr 247 mm/zbud.c return zhdr; zhdr 251 mm/zbud.c static void free_zbud_page(struct zbud_header *zhdr) zhdr 253 mm/zbud.c __free_page(virt_to_page(zhdr)); zhdr 260 mm/zbud.c static unsigned long encode_handle(struct zbud_header *zhdr, enum buddy bud) zhdr 270 mm/zbud.c handle = (unsigned long)zhdr; zhdr 275 mm/zbud.c handle += PAGE_SIZE - (zhdr->last_chunks << CHUNK_SHIFT); zhdr 286 mm/zbud.c static int num_free_chunks(struct zbud_header *zhdr) zhdr 292 mm/zbud.c return NCHUNKS - zhdr->first_chunks - zhdr->last_chunks; zhdr 358 mm/zbud.c struct zbud_header *zhdr = NULL; zhdr 370 mm/zbud.c zhdr = NULL; zhdr 373 mm/zbud.c zhdr = list_first_entry(&pool->unbuddied[i], zhdr 375 mm/zbud.c list_del(&zhdr->buddy); zhdr 376 mm/zbud.c if (zhdr->first_chunks == 0) zhdr 391 mm/zbud.c zhdr = init_zbud_page(page); zhdr 396 mm/zbud.c zhdr->first_chunks = chunks; zhdr 398 mm/zbud.c zhdr->last_chunks = chunks; zhdr 400 mm/zbud.c if (zhdr->first_chunks == 0 || zhdr->last_chunks == 0) { zhdr 402 mm/zbud.c freechunks = num_free_chunks(zhdr); zhdr 403 mm/zbud.c list_add(&zhdr->buddy, &pool->unbuddied[freechunks]); zhdr 406 mm/zbud.c list_add(&zhdr->buddy, &pool->buddied); zhdr 410 mm/zbud.c if (!list_empty(&zhdr->lru)) zhdr 411 mm/zbud.c list_del(&zhdr->lru); zhdr 412 mm/zbud.c list_add(&zhdr->lru, &pool->lru); zhdr 414 mm/zbud.c *handle = encode_handle(zhdr, bud); zhdr 432 mm/zbud.c struct zbud_header *zhdr; zhdr 436 mm/zbud.c zhdr = handle_to_zbud_header(handle); zhdr 440 mm/zbud.c zhdr->last_chunks = 0; zhdr 442 mm/zbud.c zhdr->first_chunks = 0; zhdr 444 mm/zbud.c if (zhdr->under_reclaim) { zhdr 451 mm/zbud.c list_del(&zhdr->buddy); zhdr 453 mm/zbud.c if (zhdr->first_chunks == 0 && zhdr->last_chunks == 0) { zhdr 455 mm/zbud.c list_del(&zhdr->lru); zhdr 456 mm/zbud.c free_zbud_page(zhdr); zhdr 460 mm/zbud.c freechunks = num_free_chunks(zhdr); zhdr 461 mm/zbud.c list_add(&zhdr->buddy, &pool->unbuddied[freechunks]); zhdr 505 mm/zbud.c struct zbud_header *zhdr; zhdr 515 mm/zbud.c zhdr = list_last_entry(&pool->lru, struct zbud_header, lru); zhdr 516 mm/zbud.c list_del(&zhdr->lru); zhdr 517 mm/zbud.c list_del(&zhdr->buddy); zhdr 519 mm/zbud.c zhdr->under_reclaim = true; zhdr 526 mm/zbud.c if (zhdr->first_chunks) zhdr 527 mm/zbud.c first_handle = encode_handle(zhdr, FIRST); zhdr 528 mm/zbud.c if (zhdr->last_chunks) zhdr 529 mm/zbud.c last_handle = encode_handle(zhdr, LAST); zhdr 545 mm/zbud.c zhdr->under_reclaim = false; zhdr 546 mm/zbud.c if (zhdr->first_chunks == 0 && zhdr->last_chunks == 0) { zhdr 551 mm/zbud.c free_zbud_page(zhdr); zhdr 555 mm/zbud.c } else if (zhdr->first_chunks == 0 || zhdr 556 mm/zbud.c zhdr->last_chunks == 0) { zhdr 558 mm/zbud.c freechunks = num_free_chunks(zhdr); zhdr 559 mm/zbud.c list_add(&zhdr->buddy, &pool->unbuddied[freechunks]); zhdr 562 mm/zbud.c list_add(&zhdr->buddy, &pool->buddied); zhdr 566 mm/zbud.c list_add(&zhdr->lru, &pool->lru); zhdr 842 mm/zswap.c struct zswap_header *zhdr; zhdr 857 mm/zswap.c zhdr = zpool_map_handle(pool, handle, ZPOOL_MM_RO); zhdr 858 mm/zswap.c swpentry = zhdr->swpentry; /* here */ zhdr 889 mm/zswap.c src = (u8 *)zhdr + sizeof(struct zswap_header); zhdr 998 mm/zswap.c struct zswap_header zhdr = { .swpentry = swp_entry(type, offset) }; zhdr 1072 mm/zswap.c hlen = zpool_evictable(entry->pool->zpool) ? sizeof(zhdr) : 0; zhdr 1086 mm/zswap.c memcpy(buf, &zhdr, hlen);