diff options
Diffstat (limited to 'mm/page_io.c')
| -rw-r--r-- | mm/page_io.c | 54 | 
1 files changed, 0 insertions, 54 deletions
diff --git a/mm/page_io.c b/mm/page_io.c index b417f000b49e..89fbf3cae30f 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -51,54 +51,6 @@ void end_swap_bio_write(struct bio *bio)  	bio_put(bio);  } -static void swap_slot_free_notify(struct page *page) -{ -	struct swap_info_struct *sis; -	struct gendisk *disk; -	swp_entry_t entry; - -	/* -	 * There is no guarantee that the page is in swap cache - the software -	 * suspend code (at least) uses end_swap_bio_read() against a non- -	 * swapcache page.  So we must check PG_swapcache before proceeding with -	 * this optimization. -	 */ -	if (unlikely(!PageSwapCache(page))) -		return; - -	sis = page_swap_info(page); -	if (data_race(!(sis->flags & SWP_BLKDEV))) -		return; - -	/* -	 * The swap subsystem performs lazy swap slot freeing, -	 * expecting that the page will be swapped out again. -	 * So we can avoid an unnecessary write if the page -	 * isn't redirtied. -	 * This is good for real swap storage because we can -	 * reduce unnecessary I/O and enhance wear-leveling -	 * if an SSD is used as the as swap device. -	 * But if in-memory swap device (eg zram) is used, -	 * this causes a duplicated copy between uncompressed -	 * data in VM-owned memory and compressed data in -	 * zram-owned memory.  So let's free zram-owned memory -	 * and make the VM-owned decompressed page *dirty*, -	 * so the page should be swapped out somewhere again if -	 * we again wish to reclaim it. -	 */ -	disk = sis->bdev->bd_disk; -	entry.val = page_private(page); -	if (disk->fops->swap_slot_free_notify && __swap_count(entry) == 1) { -		unsigned long offset; - -		offset = swp_offset(entry); - -		SetPageDirty(page); -		disk->fops->swap_slot_free_notify(sis->bdev, -				offset); -	} -} -  static void end_swap_bio_read(struct bio *bio)  {  	struct page *page = bio_first_page_all(bio); @@ -114,7 +66,6 @@ static void end_swap_bio_read(struct bio *bio)  	}  	SetPageUptodate(page); -	swap_slot_free_notify(page);  out:  	unlock_page(page);  	WRITE_ONCE(bio->bi_private, NULL); @@ -394,11 +345,6 @@ int swap_readpage(struct page *page, bool synchronous)  	if (sis->flags & SWP_SYNCHRONOUS_IO) {  		ret = bdev_read_page(sis->bdev, swap_page_sector(page), page);  		if (!ret) { -			if (trylock_page(page)) { -				swap_slot_free_notify(page); -				unlock_page(page); -			} -  			count_vm_event(PSWPIN);  			goto out;  		}  | 
