Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Apr 2009 13:30:28 +0200
From:      Ulf Lilleengen <lulf@FreeBSD.org>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.org>
Cc:        freebsd-geom@FreeBSD.org
Subject:   Re: kern/133604: [gvinum] [panic] writing to gjournal on a gvinum volume
Message-ID:  <20090421113028.GC21043@carrot>
In-Reply-To: <20090421102802.GC7771@mail.wheel.pl>
References:  <200904191010.n3JAA6lk068313@freefall.freebsd.org> <20090421093011.GB7771@mail.wheel.pl> <20090421111559.GA21043@carrot> <20090421102802.GC7771@mail.wheel.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
On tir, apr 21, 2009 at 12:28:02pm +0200, Pawel Jakub Dawidek wrote:
> On Tue, Apr 21, 2009 at 01:16:00PM +0200, Ulf Lilleengen wrote:
> > On tir, apr 21, 2009 at 11:30:11am +0200, Pawel Jakub Dawidek wrote:
> > > The bio_cflags field is for consumer use only (in this case gjournal. As
> > > provide you should use bio_pflags.
> > > 
> > Yes, but shouldn't cflags be used for the BIOs that gvinum issue downwards
> > when it is a consumer? Like this:
> > 
> > gjournal (consumer)
> >    |
> >  gvinum (provider)
> >  gvinum (consumer)
> >    |
> >  disk  (provider)
> > 
> > I think the problem is that it has to check where the BIO comes from when
> > picking a BIO from the input queue. In this case, it misinterpreted the
> > gjournal BIO as an internal DONE bio, so if the originator of the BIO is
> > known, it can determine if cflags is actually its own. Is this making sense?
> 
> One never passes received bio down, but instead bio is cloned, modified
Yes, that's what I meant.

> and passed down, so in your case:
> 
> gjournal (consumer)
>   |
>  bio1
>   |
> gvinum (provider)
> gvinum (consumer)
>   |
>  bio2
>   |
> disk (provider)
> 
> You can use bio1->bio_pflags and bio2->bio_cflags.
> 
> If you have the same queue for incoming and completed bios you might be
> able to find out which is which by checking bio_to/bio_from fields for
> example.
> 
Mhm, I have a patch for that, just wanted to make sure it's an okay way to do
it, thanks :)

-- 
Ulf Lilleengen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090421113028.GC21043>