diff options
Diffstat (limited to 'fs/buffer.c')
| -rw-r--r-- | fs/buffer.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index b4dcb34c963..10ef81e10b2 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -865,8 +865,6 @@ try_again:  		/* Link the buffer to its page */  		set_bh_page(bh, page, offset); - -		init_buffer(bh, NULL, NULL);  	}  	return head;  /* @@ -2949,7 +2947,7 @@ static void guard_bh_eod(int rw, struct bio *bio, struct buffer_head *bh)  	}  } -int submit_bh(int rw, struct buffer_head * bh) +int _submit_bh(int rw, struct buffer_head *bh, unsigned long bio_flags)  {  	struct bio *bio;  	int ret = 0; @@ -2984,6 +2982,7 @@ int submit_bh(int rw, struct buffer_head * bh)  	bio->bi_end_io = end_bio_bh_io_sync;  	bio->bi_private = bh; +	bio->bi_flags |= bio_flags;  	/* Take care of bh's that straddle the end of the device */  	guard_bh_eod(rw, bio, bh); @@ -2997,6 +2996,12 @@ int submit_bh(int rw, struct buffer_head * bh)  	bio_put(bio);  	return ret;  } +EXPORT_SYMBOL_GPL(_submit_bh); + +int submit_bh(int rw, struct buffer_head *bh) +{ +	return _submit_bh(rw, bh, 0); +}  EXPORT_SYMBOL(submit_bh);  /**  |