diff options
Diffstat (limited to 'mm/swapfile.c')
| -rw-r--r-- | mm/swapfile.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index 6cd0a8f90dc..eb086e0f4dc 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -139,7 +139,8 @@ static int discard_swap(struct swap_info_struct *si)  	nr_blocks = ((sector_t)se->nr_pages - 1) << (PAGE_SHIFT - 9);  	if (nr_blocks) {  		err = blkdev_issue_discard(si->bdev, start_block, -				nr_blocks, GFP_KERNEL, DISCARD_FL_BARRIER); +				nr_blocks, GFP_KERNEL, +				BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER);  		if (err)  			return err;  		cond_resched(); @@ -150,7 +151,8 @@ static int discard_swap(struct swap_info_struct *si)  		nr_blocks = (sector_t)se->nr_pages << (PAGE_SHIFT - 9);  		err = blkdev_issue_discard(si->bdev, start_block, -				nr_blocks, GFP_KERNEL, DISCARD_FL_BARRIER); +				nr_blocks, GFP_KERNEL, +				BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER);  		if (err)  			break; @@ -189,7 +191,8 @@ static void discard_swap_cluster(struct swap_info_struct *si,  			start_block <<= PAGE_SHIFT - 9;  			nr_blocks <<= PAGE_SHIFT - 9;  			if (blkdev_issue_discard(si->bdev, start_block, -				    nr_blocks, GFP_NOIO, DISCARD_FL_BARRIER)) +				    nr_blocks, GFP_NOIO, BLKDEV_IFL_WAIT | +							BLKDEV_IFL_BARRIER))  				break;  		}  |