@@ -412,7 +412,7 @@ static void z3fold_free(struct z3fold_pool *pool, unsigned long handle)
412
412
/* HEADLESS page stored */
413
413
bud = HEADLESS ;
414
414
} else {
415
- bud = (handle - zhdr -> first_num ) & BUDDY_MASK ;
415
+ bud = handle_to_buddy (handle ) ;
416
416
417
417
switch (bud ) {
418
418
case FIRST :
@@ -572,15 +572,19 @@ static int z3fold_reclaim_page(struct z3fold_pool *pool, unsigned int retries)
572
572
pool -> pages_nr -- ;
573
573
spin_unlock (& pool -> lock );
574
574
return 0 ;
575
- } else if (zhdr -> first_chunks != 0 &&
576
- zhdr -> last_chunks != 0 && zhdr -> middle_chunks != 0 ) {
577
- /* Full, add to buddied list */
578
- list_add (& zhdr -> buddy , & pool -> buddied );
579
- } else if (!test_bit (PAGE_HEADLESS , & page -> private )) {
580
- z3fold_compact_page (zhdr );
581
- /* add to unbuddied list */
582
- freechunks = num_free_chunks (zhdr );
583
- list_add (& zhdr -> buddy , & pool -> unbuddied [freechunks ]);
575
+ } else if (!test_bit (PAGE_HEADLESS , & page -> private )) {
576
+ if (zhdr -> first_chunks != 0 &&
577
+ zhdr -> last_chunks != 0 &&
578
+ zhdr -> middle_chunks != 0 ) {
579
+ /* Full, add to buddied list */
580
+ list_add (& zhdr -> buddy , & pool -> buddied );
581
+ } else {
582
+ z3fold_compact_page (zhdr );
583
+ /* add to unbuddied list */
584
+ freechunks = num_free_chunks (zhdr );
585
+ list_add (& zhdr -> buddy ,
586
+ & pool -> unbuddied [freechunks ]);
587
+ }
584
588
}
585
589
586
590
/* add to beginning of LRU */
0 commit comments