On Thu, 14 Mar 2013 15:42:43 -0700 "Darrick J. Wong" <darrick.w...@oracle.com> wrote:
> Subject: [PATCH] mm: Make snapshotting pages for stable writes a per-bio > operation > > Walking a bio's page mappings has proved problematic, so create a new bio flag > to indicate that a bio's data needs to be snapshotted in order to guarantee > stable pages during writeback. Next, for the one user (ext3/jbd) of > snapshotting, hook all the places where writes can be initiated without > PG_writeback set, and set BIO_SNAP_STABLE there. Finally, the MS_SNAP_STABLE > mount flag (only used by ext3) is now superfluous, so get rid of it. whoa, that looks way better. Must do this though: From: Andrew Morton <a...@linux-foundation.org> Subject: mm-make-snapshotting-pages-for-stable-writes-a-per-bio-operation-fix rename _submit_bh()'s `flags' to `bio_flags', delobotomize the _submit_bh declaration Cc: Adrian Hunter <adrian.hun...@intel.com> Cc: Andy Lutomirski <l...@amacapital.net> Cc: Artem Bityutskiy <dedeki...@gmail.com> Cc: Darrick J. Wong <darrick.w...@oracle.com> Cc: Jan Kara <j...@suse.cz> Cc: Jens Axboe <ax...@kernel.dk> Signed-off-by: Andrew Morton <a...@linux-foundation.org> --- fs/buffer.c | 4 ++-- include/linux/buffer_head.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff -puN fs/buffer.c~mm-make-snapshotting-pages-for-stable-writes-a-per-bio-operation-fix fs/buffer.c --- a/fs/buffer.c~mm-make-snapshotting-pages-for-stable-writes-a-per-bio-operation-fix +++ a/fs/buffer.c @@ -2949,7 +2949,7 @@ static void guard_bh_eod(int rw, struct } } -int _submit_bh(int rw, struct buffer_head * bh, unsigned long flags) +int _submit_bh(int rw, struct buffer_head * bh, unsigned long bio_flags) { struct bio *bio; int ret = 0; @@ -2984,7 +2984,7 @@ int _submit_bh(int rw, struct buffer_hea bio->bi_end_io = end_bio_bh_io_sync; bio->bi_private = bh; - bio->bi_flags |= flags; + bio->bi_flags |= bio_flags; /* Take care of bh's that straddle the end of the device */ guard_bh_eod(rw, bio, bh); diff -puN include/linux/buffer_head.h~mm-make-snapshotting-pages-for-stable-writes-a-per-bio-operation-fix include/linux/buffer_head.h --- a/include/linux/buffer_head.h~mm-make-snapshotting-pages-for-stable-writes-a-per-bio-operation-fix +++ a/include/linux/buffer_head.h @@ -181,7 +181,7 @@ void ll_rw_block(int, int, struct buffer int sync_dirty_buffer(struct buffer_head *bh); int __sync_dirty_buffer(struct buffer_head *bh, int rw); void write_dirty_buffer(struct buffer_head *bh, int rw); -int _submit_bh(int, struct buffer_head *, unsigned long); +int _submit_bh(int rw, struct buffer_head *bh, unsigned long bio_flags); int submit_bh(int, struct buffer_head *); void write_boundary_block(struct block_device *bdev, sector_t bblock, unsigned blocksize); _ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/