Lines Matching refs:new_zhdr

601 	struct z3fold_header *new_zhdr = NULL;
633 new_zhdr = __z3fold_alloc(pool, sz, false);
634 if (!new_zhdr)
637 if (WARN_ON(new_zhdr == zhdr))
640 new_bud = get_free_buddy(new_zhdr, chunks);
641 q = new_zhdr;
644 new_zhdr->first_chunks = chunks;
648 new_zhdr->middle_chunks = chunks;
649 new_zhdr->start_middle =
650 new_zhdr->first_chunks + ZHDR_CHUNKS;
651 q += new_zhdr->start_middle << CHUNK_SHIFT;
654 new_zhdr->last_chunks = chunks;
655 q += PAGE_SIZE - (new_zhdr->last_chunks << CHUNK_SHIFT);
660 new_zhdr->foreign_handles++;
663 *(unsigned long *)old_handle = (unsigned long)new_zhdr +
664 __idx(new_zhdr, new_bud);
667 (new_zhdr->last_chunks << BUDDY_SHIFT);
669 add_to_unbuddied(pool, new_zhdr);
670 z3fold_page_unlock(new_zhdr);
675 return new_zhdr;
678 if (new_zhdr && !put_z3fold_locked(new_zhdr)) {
679 add_to_unbuddied(pool, new_zhdr);
680 z3fold_page_unlock(new_zhdr);
1289 struct z3fold_header *zhdr, *new_zhdr;
1310 new_zhdr = page_address(newpage);
1311 memcpy(new_zhdr, zhdr, PAGE_SIZE);
1315 spin_lock_init(&new_zhdr->page_lock);
1316 INIT_WORK(&new_zhdr->work, compact_page_work);
1318 * z3fold_page_isolate() ensures that new_zhdr->buddy is empty,
1321 INIT_LIST_HEAD(&new_zhdr->buddy);
1325 z3fold_page_lock(new_zhdr);
1326 if (new_zhdr->first_chunks)
1327 encode_handle(new_zhdr, FIRST);
1328 if (new_zhdr->last_chunks)
1329 encode_handle(new_zhdr, LAST);
1330 if (new_zhdr->middle_chunks)
1331 encode_handle(new_zhdr, MIDDLE);
1333 new_zhdr->cpu = smp_processor_id();
1335 z3fold_page_unlock(new_zhdr);
1337 queue_work_on(new_zhdr->cpu, pool->compact_wq, &new_zhdr->work);