Hi all,
I am investigating the swap code, and I found the below possible race window:

CPU 1                                                   CPU 2
-----                                                   -----
do_swap_page
  skip swapcache case (synchronous swap_readpage)
    alloc_page_vma
                                                        swapoff
                                                          release swap_file, 
bdev, or ...
      swap_readpage
        check sis->flags is ok
          access swap_file, bdev or ...[oops!]
                                                            si->flags = 0

The swapcache case is ok because swapoff will wait on the page_lock of 
swapcache page.
Is this will really happen or Am I miss something ?
Any reply would be really grateful. Thanks! :)

Reply via email to