From: Jens Axboe <axboe@suse.de>
To: Mark Haverkamp <markh@osdl.org>
Cc: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
dm-devel@redhat.com
Subject: Re: [PATCH] Fix panic in 2.6 with bounced bio and dm
Date: Mon, 28 Feb 2005 16:51:28 +0100 [thread overview]
Message-ID: <20050228155127.GI8868@suse.de> (raw)
In-Reply-To: <1109604737.30227.3.camel@markh1.pdx.osdl.net>
On Mon, Feb 28 2005, Mark Haverkamp wrote:
> On Sat, 2005-02-26 at 13:39 +0100, Jens Axboe wrote:
> > On Fri, Feb 25 2005, Linus Torvalds wrote:
> > >
> > >
> > > On Fri, 25 Feb 2005, Andrew Morton wrote:
> > > >
> > > > It seems very weird for dm to be shoving NULL page*'s into the middle of a
> > > > bio's bvec array, so your fix might end up being a workaround pending a
> > > > closer look at what's going on in there.
> > >
> > > Yes. I don't see how this patch can be anything but bandaid to hide the
> > > real bug. Where do these "non-page" bvec's originate?
> >
> > Yep that's the fishy part, there should not be NULL pages in the middle
> > (or empty bios, for that matter) submitted for io.
> >
> > Mark, what was the bug that triggered you to write this patch?
>
> It happened when some pages of IO from a dm device were bounced. It
> looks to me when bio's are cloned in the dm code to split it for
> physical devices that only the pointers to pages that apply to that
> device are copied and th bi_idx is adjusted to point to the start,
> leaving some NULL pointers at the start of the bio_vec.
This should fix it.
Signed-off-by: Jens Axboe <axboe@suse.de>
===== mm/highmem.c 1.55 vs edited =====
--- 1.55/mm/highmem.c 2005-01-08 06:44:13 +01:00
+++ edited/mm/highmem.c 2005-02-28 16:50:59 +01:00
@@ -425,7 +425,7 @@
* at least one page was bounced, fill in possible non-highmem
* pages
*/
- bio_for_each_segment(from, *bio_orig, i) {
+ __bio_for_each_segment(from, *bio_orig, i) {
to = bio_iovec_idx(bio, i);
if (!to->bv_page) {
to->bv_page = from->bv_page;
--
Jens Axboe
WARNING: multiple messages have this Message-ID (diff)
From: Jens Axboe <axboe@suse.de>
To: Mark Haverkamp <markh@osdl.org>
Cc: Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
dm-devel@redhat.com
Subject: Re: [PATCH] Fix panic in 2.6 with bounced bio and dm
Date: Mon, 28 Feb 2005 16:51:28 +0100 [thread overview]
Message-ID: <20050228155127.GI8868@suse.de> (raw)
In-Reply-To: <1109604737.30227.3.camel@markh1.pdx.osdl.net>
On Mon, Feb 28 2005, Mark Haverkamp wrote:
> On Sat, 2005-02-26 at 13:39 +0100, Jens Axboe wrote:
> > On Fri, Feb 25 2005, Linus Torvalds wrote:
> > >
> > >
> > > On Fri, 25 Feb 2005, Andrew Morton wrote:
> > > >
> > > > It seems very weird for dm to be shoving NULL page*'s into the middle of a
> > > > bio's bvec array, so your fix might end up being a workaround pending a
> > > > closer look at what's going on in there.
> > >
> > > Yes. I don't see how this patch can be anything but bandaid to hide the
> > > real bug. Where do these "non-page" bvec's originate?
> >
> > Yep that's the fishy part, there should not be NULL pages in the middle
> > (or empty bios, for that matter) submitted for io.
> >
> > Mark, what was the bug that triggered you to write this patch?
>
> It happened when some pages of IO from a dm device were bounced. It
> looks to me when bio's are cloned in the dm code to split it for
> physical devices that only the pointers to pages that apply to that
> device are copied and th bi_idx is adjusted to point to the start,
> leaving some NULL pointers at the start of the bio_vec.
This should fix it.
Signed-off-by: Jens Axboe <axboe@suse.de>
===== mm/highmem.c 1.55 vs edited =====
--- 1.55/mm/highmem.c 2005-01-08 06:44:13 +01:00
+++ edited/mm/highmem.c 2005-02-28 16:50:59 +01:00
@@ -425,7 +425,7 @@
* at least one page was bounced, fill in possible non-highmem
* pages
*/
- bio_for_each_segment(from, *bio_orig, i) {
+ __bio_for_each_segment(from, *bio_orig, i) {
to = bio_iovec_idx(bio, i);
if (!to->bv_page) {
to->bv_page = from->bv_page;
--
Jens Axboe
next prev parent reply other threads:[~2005-02-28 15:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-25 17:03 [PATCH] Fix panic in 2.6 with bounced bio and dm Mark Haverkamp
2005-02-25 17:13 ` Mark Haverkamp
2005-02-26 0:19 ` Andrew Morton
2005-02-26 0:19 ` Andrew Morton
2005-02-26 0:40 ` Linus Torvalds
2005-02-26 12:39 ` Jens Axboe
2005-02-26 12:39 ` Jens Axboe
2005-02-28 15:32 ` Mark Haverkamp
2005-02-28 15:32 ` Mark Haverkamp
2005-02-28 15:43 ` Mark Haverkamp
2005-02-28 15:43 ` Mark Haverkamp
2005-02-28 15:51 ` Jens Axboe [this message]
2005-02-28 15:51 ` Jens Axboe
2005-02-28 16:13 ` Mark Haverkamp
2005-02-28 16:13 ` Mark Haverkamp
2005-02-28 16:15 ` Mark Haverkamp
2005-02-28 16:15 ` Mark Haverkamp
2005-02-28 16:21 ` Jens Axboe
2005-02-28 16:21 ` Jens Axboe
2005-02-28 17:35 ` Dave Olien
2005-02-28 17:35 ` Dave Olien
2005-02-28 17:40 ` Jens Axboe
2005-02-28 17:40 ` Jens Axboe
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=20050228155127.GI8868@suse.de \
--to=axboe@suse.de \
--cc=akpm@osdl.org \
--cc=dm-devel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=markh@osdl.org \
--cc=torvalds@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.