bdi->unplug_io_fn(bdi, page); 
blk_run_backing_dev(bdi, page); 
void swap_unplug_io_fn(struct backing_dev_info *unused_bdi, struct page *page){	swp_entry_t entry;	down_read(&swap_unplug_sem);	entry.val = page->private;	if (PageSwapCache(page)) {		struct block_device *bdev = swap_info[swp_type(entry)].bdev;		struct backing_dev_info *bdi;		/*		 * If the page is removed from swapcache from under us (with a		 * racy try_to_unuse/swapoff) we need an additional reference		 * count to avoid reading garbage from page->private above. If		 * the WARN_ON triggers during a swapoff it maybe the race		 * condition and it's harmless. However if it triggers without		 * swapoff it signals a problem.		 */		WARN_ON(page_count(page) <= 1);		bdi = bdev->bd_inode->i_mapping->backing_dev_info;		bdi->unplug_io_fn(bdi, page);	}	up_read(&swap_unplug_sem);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ba32311eb73f624a85a5fc2e043cda8e076f86ef/swapfile.c/clean/mm/swapfile.c