On Tue, Apr 14, 2009 at 03:16:52PM +0900, KOSAKI Motohiro wrote: > + if (PageSwapCache(page) && > + page_count(page) != page_mapcount(page) + 2) { > + ret = SWAP_FAIL; > + goto out_unmap; > + } > + Besides the race pointed out by Nick, this also would break KVM swapping with mmu notifier. mmu_notifier_invalidate_page must be invoked before reading page_count for this to work. However the invalidate has to be moved below the mlock/ptep_clear_flush_young_notify, no point to get rid of sptes if any of the spte or the pte is still young. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html