From: Jens Axboe <axboe@kernel.dk>
To: Tejun Heo <tj@kernel.org>
Cc: Wanlong Gao <gaowanlong@cn.fujitsu.com>,
Steven Rostedt <rostedt@goodmis.org>,
namhyung@gmail.com, agk@redhat.com, dm-devel@redhat.com,
neilb@suse.de, LKML <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Chris Mason <chris.mason@fusionio.com>,
linux-btrfs@vger.kernel.org
Subject: Re: [BUG REPORT] Kernel panic on 3.9.0-rc7-4-gbb33db7
Date: Fri, 19 Apr 2013 06:32:50 -0700 [thread overview]
Message-ID: <20130419133250.GR4816@kernel.dk> (raw)
In-Reply-To: <20130419055754.GA9691@mtj.dyndns.org>
On Thu, Apr 18 2013, Tejun Heo wrote:
> (cc'ing btrfs people)
>
> On Fri, Apr 19, 2013 at 11:33:20AM +0800, Wanlong Gao wrote:
> > RIP: 0010:[<ffffffff812484d3>] [<ffffffff812484d3>] ftrace_raw_event_block_bio_complete+0x73/0xf0
> ...
> > [<ffffffff811b6c10>] bio_endio+0x80/0x90
> > [<ffffffffa0790d26>] btrfs_end_bio+0xf6/0x190 [btrfs]
> > [<ffffffff811b6bcd>] bio_endio+0x3d/0x90
> > [<ffffffff81249873>] req_bio_endio+0xa3/0xe0
>
> Ugh....
>
> In fs/btrfs/volumes.c
>
> static void bbio_error(struct btrfs_bio *bbio, struct bio *bio, u64 logical)
> {
> ...
> bio->bi_bdev = (struct block_device *)
> (unsigned long)bbio->mirror_num;
> ...
> }
>
> static void btrfs_end_bio(struct bio *bio, int err)
> {
> ...
> bio->bi_bdev = (struct block_device *)
> (unsigned long)bbio->mirror_num;
>
> ...
> }
>
> In fs/btrfs/extent_io.c
>
> static void end_bio_extent_readpage(struct bio *bio, int err)
> {
> int mirror;
> ...
> mirror = (int)(unsigned long)bio->bi_bdev;
> ...
> }
>
> Ewweeeeeeeeeeeeeeeeeehh........
>
> No wonder this thing crashes. Chris, can't the original bio carry
> bbio in bi_private and let end_bio_extent_readpage() free the bbio
> instead of abusing bi_bdev like this?
Ugh, wtf.
Chris, time for a swim in the bay :-)
--
Jens Axboe
next prev parent reply other threads:[~2013-04-19 13:32 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-17 8:36 [BUG REPORT] Kernel panic on 3.9.0-rc7-4-gbb33db7 Wanlong Gao
2013-04-17 14:46 ` Steven Rostedt
2013-04-18 12:37 ` Jens Axboe
2013-04-18 12:54 ` Wanlong Gao
2013-04-18 13:35 ` Jens Axboe
2013-04-18 14:14 ` Wanlong Gao
2013-04-18 14:30 ` Jens Axboe
2013-04-18 14:45 ` Wanlong Gao
2013-04-18 17:52 ` Tejun Heo
2013-04-19 4:06 ` Wanlong Gao
2013-04-18 16:08 ` Linus Torvalds
2013-04-18 17:27 ` Tejun Heo
2013-04-18 17:39 ` Jens Axboe
2013-04-18 18:07 ` Tejun Heo
2013-04-18 18:13 ` Jens Axboe
2013-04-18 19:10 ` Linus Torvalds
2013-04-18 20:37 ` Jens Axboe
2013-04-19 1:08 ` srostedt@gmail.com
2013-04-19 1:08 ` srostedt@gmail.com
2013-04-19 6:10 ` Wanlong Gao
2013-04-19 3:33 ` Wanlong Gao
2013-04-19 3:33 ` Wanlong Gao
2013-04-19 5:57 ` Tejun Heo
2013-04-19 6:17 ` Tejun Heo
2013-04-19 6:30 ` Wanlong Gao
2013-04-19 13:31 ` Jens Axboe
2013-04-19 8:24 ` Jan Schmidt
2013-04-19 12:15 ` Chris Mason
2013-04-19 13:32 ` Jens Axboe [this message]
2013-04-19 13:52 ` Chris Mason
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=20130419133250.GR4816@kernel.dk \
--to=axboe@kernel.dk \
--cc=agk@redhat.com \
--cc=chris.mason@fusionio.com \
--cc=dm-devel@redhat.com \
--cc=gaowanlong@cn.fujitsu.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@gmail.com \
--cc=neilb@suse.de \
--cc=rostedt@goodmis.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.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.