dm: add WARN_ON_ONCE to dm_submit_bio_remap
authorMike Snitzer <snitzer@redhat.com>
Tue, 8 Mar 2022 22:15:19 +0000 (17:15 -0500)
committerMike Snitzer <snitzer@redhat.com>
Thu, 10 Mar 2022 18:44:43 +0000 (13:44 -0500)
If a target uses dm_submit_bio_remap() it should set
ti->accounts_remapped_io.

Also, switch dm_start_io_acct() WARN_ON to WARN_ON_ONCE.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm.c

index d9111e1..1c5c903 100644 (file)
@@ -541,7 +541,7 @@ static void dm_start_io_acct(struct dm_io *io, struct bio *clone)
         * Expect no possibility for race unless is_duplicate_bio.
         */
        if (!clone || likely(!clone_to_tio(clone)->is_duplicate_bio)) {
-               if (WARN_ON(io->was_accounted))
+               if (WARN_ON_ONCE(io->was_accounted))
                        return;
                io->was_accounted = 1;
        } else if (xchg(&io->was_accounted, 1) == 1)
@@ -1202,6 +1202,8 @@ void dm_submit_bio_remap(struct bio *clone, struct bio *tgt_clone,
        struct dm_target_io *tio = clone_to_tio(clone);
        struct dm_io *io = tio->io;
 
+       WARN_ON_ONCE(!tio->ti->accounts_remapped_io);
+
        /* establish bio that will get submitted */
        if (!tgt_clone)
                tgt_clone = clone;