From: Jens Axboe <axboe@suse.de>
To: Peter Osterlund <petero2@telia.com>
Cc: arjanv@redhat.com, Andrew Morton <akpm@osdl.org>,
packet-writing@suse.com, linux-kernel@vger.kernel.org
Subject: Re: ext2 on a CD-RW
Date: Fri, 2 Jan 2004 11:59:15 +0100 [thread overview]
Message-ID: <20040102105915.GO5523@suse.de> (raw)
In-Reply-To: <m2k74a8vyr.fsf@telia.com>
On Fri, Jan 02 2004, Peter Osterlund wrote:
> Arjan van de Ven <arjanv@redhat.com> writes:
>
> > On Fri, 2004-01-02 at 02:30, Peter Osterlund wrote:
> >
> > > The packet writing code has the restriction that a bio must not span a
> > > packet boundary. (A packet is 32*2048 bytes.) If the page when mapped
> > > to disk starts 2kb before a packet boundary, merge_bvec_fn therefore
> > > returns 2048, which is less than len, which is 4096 if the whole page
> > > is mapped, so the bio_add_page() call fails.
> >
> > devicemapper has similar restrictions for raid0 format; in that case
> > it's device-mappers job to split the page/bio. Just as it is UDF's task
> > to do the same I suspect...
>
> Old versions of the packet writing code did just that, but Jens told
> me that bio splitting was evil, so when the merge_bvec_fn
> functionality was added to the kernel, I started to use it.
>
> http://lists.suse.com/archive/packet-writing/2002-Aug/0044.html
Splitting is evil, but unfortunately it's a necessary evil... There are
a few kernel helpers to make supporting it easier (see bio_split()). Not
so sure how well that'll work for you, you may have to do the grunt work
yourself.
> If merge_bvec_fn is not supposed to be able to handle the need of the
> packet writing code, I can certainly resurrect my bio splitting code.
Only partially. Read my email: you _must_ accept a page addition to an
empty bio. You can refuse others. For the single page case, you may need
to split.
> Btw, for some reason, this bug is not triggered when using the UDF
> filesystem on a CDRW. I've only seen it with the ext2 filesystem.
Does UDF use mpage? The fact that it doesn't trigger on UDF doesn't mean
that packet writing isn't breaking the API :)
--
Jens Axboe
next prev parent reply other threads:[~2004-01-02 10:59 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-01 23:47 ext2 on a CD-RW Peter Osterlund
2004-01-02 0:24 ` Andrew Morton
2004-01-02 1:30 ` Peter Osterlund
2004-01-02 9:06 ` Arjan van de Ven
2004-01-02 10:09 ` Jens Axboe
2004-01-02 10:51 ` Peter Osterlund
2004-01-02 10:59 ` Jens Axboe [this message]
2004-01-02 12:09 ` Peter Osterlund
2004-01-02 12:19 ` Jens Axboe
2004-01-02 13:38 ` Peter Osterlund
2004-01-02 13:59 ` Jens Axboe
2004-01-02 16:12 ` Peter Osterlund
2004-03-29 15:38 ` Peter Osterlund
2004-01-02 10:08 ` Jens Axboe
2004-01-03 19:14 ` Pavel Machek
2004-01-03 20:32 ` Peter Osterlund
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=20040102105915.GO5523@suse.de \
--to=axboe@suse.de \
--cc=akpm@osdl.org \
--cc=arjanv@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=packet-writing@suse.com \
--cc=petero2@telia.com \
/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.