diff mbox

ext4: remove unnecessary bio get/put

Message ID 20160321161523.GA12438@kernel.dk
State Awaiting Upstream, archived
Headers show

Commit Message

Jens Axboe March 21, 2016, 4:15 p.m. UTC
Hi Ted,

ext4_io_submit() use to check for EOPNOTSUPP after bio submission,
which is why it had to get an extra reference to the bio before
submitting it. But since we no longer touch the bio after submission,
get rid of the redundant get/put of the bio. If we do get the extra
reference, we enter the slower path of having to flag this bio as now
having external references.

Signed-off-by: Jens Axboe <axboe@fb.com>

Comments

Theodore Ts'o May 6, 2016, 2:11 a.m. UTC | #1
On Mon, Mar 21, 2016 at 10:15:23AM -0600, Jens Axboe wrote:
> 
> ext4_io_submit() use to check for EOPNOTSUPP after bio submission,
> which is why it had to get an extra reference to the bio before
> submitting it. But since we no longer touch the bio after submission,
> get rid of the redundant get/put of the bio. If we do get the extra
> reference, we enter the slower path of having to flag this bio as now
> having external references.
> 
> Signed-off-by: Jens Axboe <axboe@fb.com>

Jens, thanks for pointing this out.  I've applied this to the ext4.git
tree.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 349d7aa04fe7..a81939236707 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -351,9 +351,7 @@  void ext4_io_submit(struct ext4_io_submit *io)
 	if (bio) {
 		int io_op = io->io_wbc->sync_mode == WB_SYNC_ALL ?
 			    WRITE_SYNC : WRITE;
-		bio_get(io->io_bio);
 		submit_bio(io_op, io->io_bio);
-		bio_put(io->io_bio);
 	}
 	io->io_bio = NULL;
 }