From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Kent Overstreet <koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Cc: linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
mpatocka-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org,
Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>,
"Martin K. Petersen"
<martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH v6 10/13] block: Introduce new bio_split()
Date: Wed, 22 Aug 2012 13:46:08 -0700 [thread overview]
Message-ID: <20120822204608.GK19212@google.com> (raw)
In-Reply-To: <1345655050-28199-11-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Hello, Kent.
On Wed, Aug 22, 2012 at 10:04:07AM -0700, Kent Overstreet wrote:
> @@ -672,7 +672,6 @@ void bio_integrity_trim(struct bio *bio, unsigned int offset,
>
> BUG_ON(bip == NULL);
> BUG_ON(bi == NULL);
> - BUG_ON(!bio_flagged(bio, BIO_CLONED));
>
> nr_sectors = bio_integrity_hw_sectors(bi, sectors);
> bip->bip_sector = bip->bip_sector + offset;
It depends on what BIO_CLONED is supposed to do but maybe the right
thing to do is clearing BIO_CLONED on split bio? The split bio isn't
a clone after all.
> /**
> + * bio_split - split a bio
> + * @bio: bio to split
> + * @sectors: number of sectors to split from the front of @bio
> + * @gfp: gfp mask
> + * @bs: bio set to allocate from
> + *
> + * Allocates and returns a new bio which represents @sectors from the start of
> + * @bio, and updates @bio to represent the remaining sectors.
> + *
> + * If bio_sectors(@bio) was less than or equal to @sectors, returns @bio
> + * unchanged.
This is no longer true.
> + * The newly allocated bio will point to @bio's bi_io_vec, if the split was on a
> + * bvec boundry; it is the caller's responsibility to ensure that @bio is not
> + * freed before the split.
> + */
> +struct bio *bio_split(struct bio *bio, int sectors,
> + gfp_t gfp, struct bio_set *bs)
> +{
...
> + if (bio_integrity(bio)) {
> + bio_integrity_clone(split, bio, gfp, bs);
What happens if bio_integrity_clone() fails?
> + bio_integrity_trim(split, 0, bio_sectors(split));
> + bio_integrity_trim(bio, bio_sectors(split), bio_sectors(bio));
I complained pretty loudly about this not being mentioned in the
description of this patch or the following one and there still is no
explanation. Come on, Kent.
> +static inline struct bio *bio_next_split(struct bio *bio, int sectors,
> + gfp_t gfp, struct bio_set *bs)
> +{
> + if (sectors >= bio_sectors(bio))
> + return bio;
> +
> + return bio_split(bio, sectors, gfp, bs);
> +}
First of all, I don't think this is necessary. In addition, this
doesn't have any comment explaining what it does and is never
mentioned or justified in patch description. Kent, you're repeating
the same mistakes even after being explicitly pointed out multiple
times. *Please* pay more attention.
Thanks.
--
tejun
next prev parent reply other threads:[~2012-08-22 20:46 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 17:03 [PATCH v6 00/13] Block cleanups Kent Overstreet
2012-08-22 17:03 ` [PATCH v6 01/13] block: Generalized bio pool freeing Kent Overstreet
[not found] ` <1345655050-28199-2-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 21:27 ` Nicholas A. Bellinger
2012-08-22 17:03 ` [PATCH v6 02/13] dm: Use bioset's front_pad for dm_rq_clone_bio_info Kent Overstreet
[not found] ` <1345655050-28199-3-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 18:32 ` Tejun Heo
2012-08-22 21:30 ` Vivek Goyal
[not found] ` <20120822213010.GA8020-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-08-24 7:14 ` Kent Overstreet
[not found] ` <20120824071448.GF11977-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-24 18:40 ` Vivek Goyal
2012-08-22 17:04 ` [PATCH v6 03/13] block: Add bio_reset() Kent Overstreet
[not found] ` <1345655050-28199-4-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 18:34 ` Tejun Heo
2012-08-22 19:51 ` Tejun Heo
2012-08-22 17:04 ` [PATCH v6 04/13] pktcdvd: Switch to bio_kmalloc() Kent Overstreet
[not found] ` <1345655050-28199-5-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 19:55 ` Tejun Heo
[not found] ` <20120822195546.GG19212-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-28 23:19 ` Jiri Kosina
2012-08-29 4:35 ` Peter Osterlund
2012-09-03 16:15 ` Jiri Kosina
2012-08-22 17:04 ` [PATCH v6 05/13] block: Kill bi_destructor Kent Overstreet
[not found] ` <1345655050-28199-6-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 20:00 ` Tejun Heo
[not found] ` <20120822200032.GH19212-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-24 5:09 ` Kent Overstreet
2012-08-22 17:04 ` [PATCH v6 06/13] block: Consolidate bio_alloc_bioset(), bio_kmalloc() Kent Overstreet
[not found] ` <1345655050-28199-7-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 20:17 ` Tejun Heo
[not found] ` <20120822201730.GI19212-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-24 5:04 ` Kent Overstreet
[not found] ` <20120824050400.GA11977-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-24 20:08 ` Tejun Heo
2012-08-22 17:04 ` [PATCH v6 07/13] block: Avoid deadlocks with bio allocation by stacking drivers Kent Overstreet
2012-08-22 20:30 ` Tejun Heo
2012-08-24 5:55 ` Kent Overstreet
[not found] ` <20120824055554.GC11977-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-24 20:28 ` Tejun Heo
2012-08-22 17:04 ` [PATCH v6 11/13] block: Rework bio_pair_split() Kent Overstreet
[not found] ` <1345655050-28199-12-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 21:04 ` Tejun Heo
[not found] ` <20120822210410.GL19212-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-24 2:25 ` Martin K. Petersen
[not found] ` <yq1y5l5hvpw.fsf-+q57XtR/GgMb6DWv4sQWN6xOck334EZe@public.gmane.org>
2012-08-24 10:37 ` Kent Overstreet
2012-08-24 20:58 ` Tejun Heo
2012-08-24 10:30 ` Kent Overstreet
2012-08-24 20:53 ` Tejun Heo
2012-08-22 17:04 ` [PATCH v6 13/13] block: Only clone bio vecs that are in use Kent Overstreet
[not found] ` <1345655050-28199-14-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 21:10 ` Tejun Heo
[not found] ` <20120822211045.GN19212-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-24 7:05 ` Kent Overstreet
[not found] ` <20120824070508.GE11977-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-24 20:42 ` Tejun Heo
[not found] ` <1345655050-28199-1-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 17:04 ` [PATCH v6 08/13] block: Add an explicit bio flag for bios that own their bvec Kent Overstreet
[not found] ` <1345655050-28199-9-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 17:43 ` Adrian Bunk
[not found] ` <20120822174351.GA27453-c9qLp6CXzmZPEsXTsnYjsA@public.gmane.org>
2012-08-22 19:22 ` Kent Overstreet
2012-08-22 20:00 ` Adrian Bunk
[not found] ` <20120822200038.GB27453-c9qLp6CXzmZPEsXTsnYjsA@public.gmane.org>
2012-08-28 17:23 ` Kent Overstreet
2012-08-22 17:04 ` [PATCH v6 09/13] block: Rename bio_split() -> bio_pair_split() Kent Overstreet
2012-08-22 17:04 ` [PATCH v6 10/13] block: Introduce new bio_split() Kent Overstreet
[not found] ` <1345655050-28199-11-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 20:46 ` Tejun Heo [this message]
2012-08-22 17:04 ` [PATCH v6 12/13] block: Add bio_clone_bioset(), bio_clone_kmalloc() Kent Overstreet
[not found] ` <1345655050-28199-13-git-send-email-koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-22 17:13 ` Jeff Garzik
2012-08-22 21:07 ` Tejun Heo
[not found] ` <20120822210740.GM19212-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-08-24 6:24 ` Kent Overstreet
[not found] ` <20120824062418.GD11977-jC9Py7bek1znysI04z7BkA@public.gmane.org>
2012-08-24 20:36 ` Tejun Heo
2012-08-23 18:00 ` [PATCH v6 00/13] Block cleanups Vivek Goyal
[not found] ` <20120823180041.GK12232-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-08-24 12:46 ` Kent Overstreet
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 \
--in-reply-to=20120822204608.GK19212@google.com \
--to=tj-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \
--cc=bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org \
--cc=dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=martin.petersen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=mpatocka-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).