From: Mike Snitzer <[email protected]>
To: Jeffle Xu <[email protected]>
Cc: [email protected], [email protected],
[email protected]
Subject: Re: [PATCH RFC 5/7] dm: always return BLK_QC_T_NONE for bio-based device
Date: Thu, 7 Jan 2021 16:54:15 -0500 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
On Wed, Dec 23 2020 at 6:26am -0500,
Jeffle Xu <[email protected]> wrote:
> Currently the returned cookie of bio-based device is not used at all.
>
> In the following patches, bio-based device will actually return a
> pointer to a specific object as the returned cookie.
In the following patch, ...
> Signed-off-by: Jeffle Xu <[email protected]>
Reviewed-by: Mike Snitzer <[email protected]>
> ---
> drivers/md/dm.c | 26 ++++++++++----------------
> 1 file changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index 5b2f371ec4bb..03c2b867acaa 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -1252,14 +1252,13 @@ void dm_accept_partial_bio(struct bio *bio, unsigned n_sectors)
> }
> EXPORT_SYMBOL_GPL(dm_accept_partial_bio);
>
> -static blk_qc_t __map_bio(struct dm_target_io *tio)
> +static void __map_bio(struct dm_target_io *tio)
> {
> int r;
> sector_t sector;
> struct bio *clone = &tio->clone;
> struct dm_io *io = tio->io;
> struct dm_target *ti = tio->ti;
> - blk_qc_t ret = BLK_QC_T_NONE;
>
> clone->bi_end_io = clone_endio;
>
> @@ -1278,7 +1277,7 @@ static blk_qc_t __map_bio(struct dm_target_io *tio)
> case DM_MAPIO_REMAPPED:
> /* the bio has been remapped so dispatch it */
> trace_block_bio_remap(clone, bio_dev(io->orig_bio), sector);
> - ret = submit_bio_noacct(clone);
> + submit_bio_noacct(clone);
> break;
> case DM_MAPIO_KILL:
> free_tio(tio);
> @@ -1292,8 +1291,6 @@ static blk_qc_t __map_bio(struct dm_target_io *tio)
> DMWARN("unimplemented target map return value: %d", r);
> BUG();
> }
> -
> - return ret;
> }
>
> static void bio_setup_sector(struct bio *bio, sector_t sector, unsigned len)
> @@ -1380,7 +1377,7 @@ static void alloc_multiple_bios(struct bio_list *blist, struct clone_info *ci,
> }
> }
>
> -static blk_qc_t __clone_and_map_simple_bio(struct clone_info *ci,
> +static void __clone_and_map_simple_bio(struct clone_info *ci,
> struct dm_target_io *tio, unsigned *len)
> {
> struct bio *clone = &tio->clone;
> @@ -1391,7 +1388,7 @@ static blk_qc_t __clone_and_map_simple_bio(struct clone_info *ci,
> if (len)
> bio_setup_sector(clone, ci->sector, *len);
>
> - return __map_bio(tio);
> + __map_bio(tio);
> }
>
> static void __send_duplicate_bios(struct clone_info *ci, struct dm_target *ti,
> @@ -1405,7 +1402,7 @@ static void __send_duplicate_bios(struct clone_info *ci, struct dm_target *ti,
>
> while ((bio = bio_list_pop(&blist))) {
> tio = container_of(bio, struct dm_target_io, clone);
> - (void) __clone_and_map_simple_bio(ci, tio, len);
> + __clone_and_map_simple_bio(ci, tio, len);
> }
> }
>
> @@ -1450,7 +1447,7 @@ static int __clone_and_map_data_bio(struct clone_info *ci, struct dm_target *ti,
> free_tio(tio);
> return r;
> }
> - (void) __map_bio(tio);
> + __map_bio(tio);
>
> return 0;
> }
> @@ -1565,11 +1562,10 @@ static void init_clone_info(struct clone_info *ci, struct mapped_device *md,
> /*
> * Entry point to split a bio into clones and submit them to the targets.
> */
> -static blk_qc_t __split_and_process_bio(struct mapped_device *md,
> +static void __split_and_process_bio(struct mapped_device *md,
> struct dm_table *map, struct bio *bio)
> {
> struct clone_info ci;
> - blk_qc_t ret = BLK_QC_T_NONE;
> int error = 0;
>
> init_clone_info(&ci, md, map, bio);
> @@ -1613,7 +1609,7 @@ static blk_qc_t __split_and_process_bio(struct mapped_device *md,
>
> bio_chain(b, bio);
> trace_block_split(b, bio->bi_iter.bi_sector);
> - ret = submit_bio_noacct(bio);
> + submit_bio_noacct(bio);
> break;
> }
> }
> @@ -1621,13 +1617,11 @@ static blk_qc_t __split_and_process_bio(struct mapped_device *md,
>
> /* drop the extra reference count */
> dec_pending(ci.io, errno_to_blk_status(error));
> - return ret;
> }
>
> static blk_qc_t dm_submit_bio(struct bio *bio)
> {
> struct mapped_device *md = bio->bi_disk->private_data;
> - blk_qc_t ret = BLK_QC_T_NONE;
> int srcu_idx;
> struct dm_table *map;
>
> @@ -1657,10 +1651,10 @@ static blk_qc_t dm_submit_bio(struct bio *bio)
> if (is_abnormal_io(bio))
> blk_queue_split(&bio);
>
> - ret = __split_and_process_bio(md, map, bio);
> + __split_and_process_bio(md, map, bio);
> out:
> dm_put_live_table(md, srcu_idx);
> - return ret;
> + return BLK_QC_T_NONE;
> }
>
> /*-----------------------------------------------------------------
> --
> 2.27.0
>
> --
> dm-devel mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/dm-devel
next prev parent reply other threads:[~2021-01-07 21:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-23 11:26 [PATCH RFC 0/7] dm: add support of iopoll Jeffle Xu
2020-12-23 11:26 ` [PATCH RFC 1/7] block: move definition of blk_qc_t to types.h Jeffle Xu
2021-01-07 19:04 ` Mike Snitzer
2020-12-23 11:26 ` [PATCH RFC 2/7] block: add helper function fetching gendisk from queue Jeffle Xu
2021-01-07 20:31 ` Mike Snitzer
2020-12-23 11:26 ` [PATCH RFC 3/7] block: add iopoll method for non-mq device Jeffle Xu
2021-01-07 21:47 ` Mike Snitzer
2021-01-08 3:24 ` [dm-devel] " JeffleXu
2021-01-08 17:33 ` Mike Snitzer
2021-01-11 7:50 ` [dm-devel] " JeffleXu
2020-12-23 11:26 ` [PATCH RFC 4/7] block: define blk_qc_t as uintptr_t Jeffle Xu
2021-01-07 21:52 ` Mike Snitzer
2020-12-23 11:26 ` [PATCH RFC 5/7] dm: always return BLK_QC_T_NONE for bio-based device Jeffle Xu
2021-01-07 21:54 ` Mike Snitzer [this message]
2020-12-23 11:26 ` [PATCH RFC 6/7] block: track cookies of split bios " Jeffle Xu
2021-01-07 22:18 ` Mike Snitzer
2021-01-08 3:08 ` [dm-devel] " JeffleXu
2021-01-08 17:26 ` Mike Snitzer
2021-01-12 5:46 ` [dm-devel] " JeffleXu
2021-01-12 16:13 ` Mike Snitzer
2021-01-14 9:16 ` [dm-devel] " JeffleXu
2021-01-14 14:30 ` Mike Snitzer
2021-01-12 7:11 ` [dm-devel] " JeffleXu
2020-12-23 11:26 ` [PATCH RFC 7/7] dm: add support for IO polling Jeffle Xu
2021-01-08 3:12 ` [dm-devel] " JeffleXu
2021-01-07 1:14 ` [dm-devel] [PATCH RFC 0/7] dm: add support of iopoll JeffleXu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox