On Wed, 18 Aug 2010, Christoph Hellwig wrote: > The swap code already uses synchronous discards, no need to add I/O barriers. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Acked-by: Hugh Dickins <hughd@xxxxxxxxxx> (though if you happened to respin, I'd be be glad for those newlines between GFP_KERNEL, BLKDEV_IFL_WAIT to go away now) This patch could go in any time now: I may want to push it in and get it to 35-stable, because it certainly helps against the swap discard regression that Nigel reported (though I've not yet seen his numbers with this). However, I don't think it eliminates the regression, so I've more testing and experimenting to do before deciding about it - the right answer may just be to disable swap discard, as you asked for long ago. Hugh > > Index: linux-2.6/mm/swapfile.c > =================================================================== > --- linux-2.6.orig/mm/swapfile.c 2010-08-17 16:49:28.312010428 +0200 > +++ linux-2.6/mm/swapfile.c 2010-08-17 16:49:43.694255853 +0200 > @@ -140,7 +140,7 @@ static int discard_swap(struct swap_info > if (nr_blocks) { > err = blkdev_issue_discard(si->bdev, start_block, > nr_blocks, GFP_KERNEL, > - BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER); > + BLKDEV_IFL_WAIT); > if (err) > return err; > cond_resched(); > @@ -152,7 +152,7 @@ static int discard_swap(struct swap_info > > err = blkdev_issue_discard(si->bdev, start_block, > nr_blocks, GFP_KERNEL, > - BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER); > + BLKDEV_IFL_WAIT); > if (err) > break; > > @@ -191,8 +191,7 @@ static void discard_swap_cluster(struct > start_block <<= PAGE_SHIFT - 9; > nr_blocks <<= PAGE_SHIFT - 9; > if (blkdev_issue_discard(si->bdev, start_block, > - nr_blocks, GFP_NOIO, BLKDEV_IFL_WAIT | > - BLKDEV_IFL_BARRIER)) > + nr_blocks, GFP_NOIO, BLKDEV_IFL_WAIT)) > break; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html