Commit b992b40d authored by Ming Lei's avatar Ming Lei Committed by Mike Snitzer

dm: don't pass bio to __dm_start_io_acct and dm_end_io_acct

dm->orig_bio is always passed to __dm_start_io_acct and dm_end_io_acct,
so it isn't necessary to take one bio parameter for the two helpers.
Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
parent bdb34759
...@@ -531,16 +531,13 @@ static void dm_io_acct(bool end, struct mapped_device *md, struct bio *bio, ...@@ -531,16 +531,13 @@ static void dm_io_acct(bool end, struct mapped_device *md, struct bio *bio,
bio->bi_iter.bi_size = bi_size; bio->bi_iter.bi_size = bi_size;
} }
static void __dm_start_io_acct(struct dm_io *io, struct bio *bio) static void __dm_start_io_acct(struct dm_io *io)
{ {
dm_io_acct(false, io->md, bio, io->start_time, &io->stats_aux); dm_io_acct(false, io->md, io->orig_bio, io->start_time, &io->stats_aux);
} }
static void dm_start_io_acct(struct dm_io *io, struct bio *clone) static void dm_start_io_acct(struct dm_io *io, struct bio *clone)
{ {
/* Must account IO to DM device in terms of orig_bio */
struct bio *bio = io->orig_bio;
/* /*
* Ensure IO accounting is only ever started once. * Ensure IO accounting is only ever started once.
*/ */
...@@ -558,12 +555,12 @@ static void dm_start_io_acct(struct dm_io *io, struct bio *clone) ...@@ -558,12 +555,12 @@ static void dm_start_io_acct(struct dm_io *io, struct bio *clone)
spin_unlock_irqrestore(&io->lock, flags); spin_unlock_irqrestore(&io->lock, flags);
} }
__dm_start_io_acct(io, bio); __dm_start_io_acct(io);
} }
static void dm_end_io_acct(struct dm_io *io, struct bio *bio) static void dm_end_io_acct(struct dm_io *io)
{ {
dm_io_acct(true, io->md, bio, io->start_time, &io->stats_aux); dm_io_acct(true, io->md, io->orig_bio, io->start_time, &io->stats_aux);
} }
static struct dm_io *alloc_io(struct mapped_device *md, struct bio *bio) static struct dm_io *alloc_io(struct mapped_device *md, struct bio *bio)
...@@ -899,14 +896,14 @@ static void dm_io_complete(struct dm_io *io) ...@@ -899,14 +896,14 @@ static void dm_io_complete(struct dm_io *io)
io_error = io->status; io_error = io->status;
if (dm_io_flagged(io, DM_IO_ACCOUNTED)) if (dm_io_flagged(io, DM_IO_ACCOUNTED))
dm_end_io_acct(io, bio); dm_end_io_acct(io);
else if (!io_error) { else if (!io_error) {
/* /*
* Must handle target that DM_MAPIO_SUBMITTED only to * Must handle target that DM_MAPIO_SUBMITTED only to
* then bio_endio() rather than dm_submit_bio_remap() * then bio_endio() rather than dm_submit_bio_remap()
*/ */
__dm_start_io_acct(io, bio); __dm_start_io_acct(io);
dm_end_io_acct(io, bio); dm_end_io_acct(io);
} }
free_io(io); free_io(io);
smp_wmb(); smp_wmb();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment