On 22.05.23 09:09, Huang Ying wrote:
__swap_duplicate() is called by - swap_shmem_alloc(): the page lock of the swap cache is held.
page lock of the swap cache? Did you really mean to say that or am I confused?
"Page lock of the page that is in the swap cache?"
- copy_nonpresent_pte() -> swap_duplicate() and try_to_unmap_one() -> swap_duplicate(): the page table lock is held. - __read_swap_cache_async() -> swapcache_prepare(): enclosed with get/put_swap_device() in __read_swap_cache_async() already. So, it's safe to remove get/put_swap_device() in __swap_duplicate().
-- Thanks, David / dhildenb