From: Andrew Morton <akpm@osdl.org>
To: Andy Isaacson <adi@hexapodia.org>
Cc: bug-coreutils@gnu.org, linux-kernel@vger.kernel.org
Subject: Re: dd PATCH: add conv=direct
Date: Wed, 7 Apr 2004 11:18:41 -0700 [thread overview]
Message-ID: <20040407111841.78ae0021.akpm@osdl.org> (raw)
In-Reply-To: <20040407173116.GB2814@hexapodia.org>
Andy Isaacson <adi@hexapodia.org> wrote:
>
> On Tue, Apr 06, 2004 at 05:33:26PM -0700, Andrew Morton wrote:
> > Andy Isaacson <adi@hexapodia.org> wrote:
> > > dd(1) is convenient for this purpose, but is lacking a method
> > > to force O_DIRECT. The enclosed patch adds a "conv=direct" flag to
> > > enable this usage.
> >
> > This would be rather nice to have. You'll need to ensure that the data
> > is page-aligned in memory.
>
> So, some confusion on my part about O_DIRECT: I can't get O_DIRECT to
> work on ext3, at all, on 2.4.25
ext3 doesn't support O_DIRECT in 2.4 kernels. I did a patch once and I
think it's in 2.4-aa kernels.
ext3 supports O_DIRECT in 2.6 kernels. Quite a number of filesystems do.
> -- open(O_DIRECT) succeeds, but the write
> returns EINVAL.
Yup that's a bit silly. In 2.6 we do the check at open() and fcntl() time.
In 2.4 we don't fail until the actual I/O attempt.
> Same code works fine when writing to a block device.
> If the problem is that ext3 can't support O_DIRECT, why does the open
> succeed?
We have been insufficiently assiduous in merging externally-supported
patches into the mainline 2.4 tree.
> > While you're there, please add an fsync-before-closing option.
>
> Easy enough. How does this look? Note that C_TWOBUFS ensures the
> output buffer is getpagesize()-aligned.
Looks nice and simple. You'll need an ext2 filesystem to test it under 2.4.
Be aware that it's rather a challenge to actually get the O_DIRECT #define
in scope under some glibc versions. I think you need to define _GNU_SOURCE
or something like that.
next prev parent reply other threads:[~2004-04-07 18:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-06 22:03 dd PATCH: add conv=direct Andy Isaacson
2004-04-07 0:33 ` Andrew Morton
2004-04-07 16:21 ` Bruce Allen
2004-04-07 16:42 ` Andrew Morton
2004-04-07 17:31 ` Andy Isaacson
2004-04-07 18:18 ` Andrew Morton [this message]
2004-04-07 19:24 ` Andy Isaacson
2004-04-07 19:34 ` Andrew Morton
2004-04-07 19:47 ` Andy Isaacson
2004-04-07 20:03 ` Andrew Morton
2004-04-07 20:43 ` Andy Isaacson
2004-04-07 21:00 ` Valdis.Kletnieks
2004-04-07 21:35 ` Bruce Allen
2004-04-08 6:56 ` Paul Eggert
2004-04-08 11:07 ` Jim Meyering
2004-04-08 19:32 ` Paul Eggert
2004-04-08 19:51 ` Paul Jarc
2004-04-08 21:34 ` Jim Meyering
2004-04-08 16:23 ` Philippe Troin
2004-04-08 20:20 ` dd patch to remove noctty Paul Eggert
2004-04-08 21:40 ` Jim Meyering
2004-04-09 0:37 ` dd PATCH: add conv=direct Anton Blanchard
2004-04-09 1:42 ` Wim Coekaerts
2004-04-10 21:28 ` Jim Meyering
2004-04-07 20:46 ` Paul Eggert
2004-04-07 21:06 ` Andrew Morton
2004-04-07 21:09 ` Andy Isaacson
2004-04-07 19:12 ` Miquel van Smoorenburg
2004-04-07 20:14 ` Andy Isaacson
2004-04-07 22:02 ` Nathan Straz
2004-04-07 22:09 ` Andy Isaacson
2004-04-08 11:44 ` Miquel van Smoorenburg
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=20040407111841.78ae0021.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=adi@hexapodia.org \
--cc=bug-coreutils@gnu.org \
--cc=linux-kernel@vger.kernel.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.