Another option to free the page is put_page() right? To me it looks like r5l_recovery_verify_data_checksum_for_mb() should use free_page() but put_page() also works I think. My understanding is that you could swap all the free_page() calls for put_page() but not the other way round. regards, dan carpenter