]> Pileus Git - ~andy/linux/blobdiff - mm/swapfile.c
nommu: allow private mappings of read-only devices
[~andy/linux] / mm / swapfile.c
index f5ccc476aa51368c96ba9918e6e011067fad94ad..03aa2d55f1a2f54fc5eb17b099806edbc83a4049 100644 (file)
@@ -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;
                }