X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=mm%2Fpage_io.c;h=985f23cfa79b75d3b38fad9bfa5cdf4385f7c8e4;hb=407aa3ff6f54ea2be7959639d664ae5183e2e9f8;hp=cd92e3d67a32201fac72196a050fb6e47017d33d;hpb=f9d1e7f389b3724ee7d6dde7427b10806bc66577;p=linux-2.6-block.git diff --git a/mm/page_io.c b/mm/page_io.c index cd92e3d67a32..985f23cfa79b 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -353,7 +353,11 @@ int swap_readpage(struct page *page) ret = bdev_read_page(sis->bdev, swap_page_sector(page), page); if (!ret) { - swap_slot_free_notify(page); + if (trylock_page(page)) { + swap_slot_free_notify(page); + unlock_page(page); + } + count_vm_event(PSWPIN); return 0; }