Re: [PATCH] pktcdvd: don't rely on bio_init() preserving bio->bi_destructor

Jens Axboe
2007-09-21T05:18:46Z

On Thu, Sep 20 2007, Laurent Riffard wrote:
> Le 14.09.2007 21:04, Laurent Riffard a écrit :
> > Le 14.09.2007 13:06, Jens Axboe a écrit :
> >> On Fri, Sep 14 2007, Jens Axboe wrote:
> >>> On Fri, Sep 14 2007, Laurent Riffard wrote:
> >>>> Le 10.09.2007 22:19, Laurent Riffard a écrit :
> >>>>> Jens,
> >>>>>
> >>>>> git-block.patch broke pktcdvd, I've got an Oops while syncing:
> >>>>>
> > [snip]
> >>>> I dig through git-block.patch and the culprit seems to be commit
> >>>> c94f1c4ac87862675c8d70941973bc3a69aff5d8 "bio: use memset() in
> >>>> bio_init()".
> >>>>
> >>>> Maybe the real bug is a bad bio initialization in pktcdvd driver,
> >>>> which is revealed by this commit ?
> >>> At least pktcdvd doesn't expect bio->bi_io_vec[] to be cleared, that's
> >>> why it's oopsing now. I'll revert this bit for now, thanks for the
> >>> report.
> >> Rethinking this, I think bio_init() is doing the right thing, only
> >> pktcdvd seems to rely on it preserving some members. So I'd rather fixup
> >> pktcdvd instead.
> >>
> >> Does this work for you?
> >
> > Well, it's better: I was able to mount the DVD-RW, sync, and write data,
> > but kernel oopsed when I unmounted the drive:
>
> Jens,
>
> this patch, applied on top of your previous patch, solved it.
>
>
>
> pktcdvd: don't rely on bio_init() preserving bio->bi_destructor

Ah great, thanks for following up on this! Applied.

--
Jens Axboe