From: Marcelo Tosatti <marcelo@kvack.org>
To: Linux-kernel <linux-kernel@vger.kernel.org>
Cc: DervishD <lkml@dervishd.net>
Subject: Re: O_DIRECT, ext3fs, kernel 2.4.32... again
Date: Mon, 1 May 2006 03:20:58 -0300 [thread overview]
Message-ID: <20060501062058.GA16589@dmt> (raw)
In-Reply-To: <20060427063249.GH761@DervishD>
Hi Raul,
On Thu, Apr 27, 2006 at 08:32:49AM +0200, DervishD wrote:
> Hi all :)
>
> I don't know if the patch to backport O_DIRECT support for ext3
> under kernel 2.4.3x was finally accepted or not, but I'm having what
> I consider inconsistent behaviour due to O_DIRECT under ext3fs and
> kernel 2.4.32.
>
> I can understand that ext3 doesn't support O_DIRECT, and that's
> not a problem for me. In fact, if an app really needs O_DIRECT and
> the underlying filesystem doesn't support it, the app should fail, no
> more and no less.
On v2.4, nope it doesnt.
> The problem I'm having is with dvd+rw-tools. Apart from all the
> problems regarding DVD writing, I have another problem: the open64
> call with the O_DIRECT flag succeeds, but any subsequent read
> operation fails. IMHO, if the filesystem is going to return EINVAL
> for any read/write operation over an O_DIRECT'ed filehandle, it
> should return an error when opening, too.
>
> The growisofs program tries to open a file using O_DIRECT and the
> call succeeds, so it tries to read from that filehandle and the
> result is always EINVAL.
>
> I've tried a test program, just in case the problem was memory
> alignment of the buffer, but nothing is solved (I used posix_memalign
> and some recipe I found in this list, using the st_blksize and the
> st_size of the file). The problem seems to be in the O_DIRECT flag,
> because removing it from the open call makes all work.
>
> Shouldn't ext3fs return an error when the O_DIRECT flag is used
> in the open call? Is the open call userspace only and thus only libc
> can return such error? Am I misunderstanding the entire issue and
> this is a perfectly legal behaviour (allowing the open, failing in
> the read operation)?
Your interpretation is correct. It would be nicer for open() to fail on
fs'es which don't support O_DIRECT, but v2.4 makes such check later at
read/write unfortunately ;(
And its too late for changing that IMO...
next prev parent reply other threads:[~2006-05-01 6:21 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-27 6:32 O_DIRECT, ext3fs, kernel 2.4.32... again DervishD
2006-05-01 6:20 ` Marcelo Tosatti [this message]
2006-05-01 11:23 ` DervishD
2006-05-01 21:28 ` Nathan Scott
2006-05-01 22:23 ` Bernd Eckenfels
2006-05-02 17:24 ` DervishD
2006-05-02 20:03 ` Nathan Scott
2006-05-03 5:27 ` DervishD
2006-05-03 6:35 ` Nathan Scott
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=20060501062058.GA16589@dmt \
--to=marcelo@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@dervishd.net \
/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.