From: Daniel McNeil <daniel@osdl.org>
To: Badari Pulavarty <pbadari@us.ibm.com>
Cc: "Suparna Bhattacharya" <suparna@in.ibm.com>,
"Andrew Morton" <akpm@osdl.org>,
"Sébastien Dugué" <sebastien.dugue@bull.net>,
"linux-aio@kvack.org" <linux-aio@kvack.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] 2.6.10 - direct-io async short read bug
Date: Tue, 08 Mar 2005 15:27:14 -0800 [thread overview]
Message-ID: <1110324434.6521.23.camel@ibm-c.pdx.osdl.net> (raw)
In-Reply-To: <1110309508.24286.74.camel@dyn318077bld.beaverton.ibm.com>
On Tue, 2005-03-08 at 11:18, Badari Pulavarty wrote:
> > Andrew, please don't apply the original patch. We shouldn't even attempt
> > to submit IO beyond the filesize. We should truncate the IO request to
> > filesize. I will send a patch today to fix this.
> >
>
> Well, spoke too soon. This is an ugly corner case :( But I have
> a ugly hack to fix it :)
>
> Let me ask you a basic question: Do we support DIO reads on a file
> which is not blocksize multiple in size ? (say 12K - 10 bytes) ?
> What about the ones which are not 4K but 512 byte multiple ? (say 7K) ?
>
> I need answer to those, to figure out how hard I should try to fix this.
>
> Anyway, here is ugly version of the patch - which will limit the IO
> size to filesize and uses lower blocksizes to read the file (since
> the filesize is only 3K, it would go down to 512 byte blocksize).
Badari,
Just to be clear, are you just asking about what we should support on a
DIO read that spans EOF?
For DIO reads past EOF the options are:
1. return EINVAL if the DIO goes past EOF.
2. truncate the request to file size (which is what your patch does)
and if it works, it works.
3. truncate the request to a size that actually works - like a multiple
of 512.
4. Do the full i/o since the user buffer is big enough, truncate the
result returned to file size (and clear out the user buffer where it
read past EOF).
Number 4 would make it easy on the user-level code, but AIO DIO might be
a bit tricky and might be a security hole since the data would be dma'ed
there and then cleared. I need to look at the code some more.
1 and 2 both seem valid and are better than returning the wrong result.
3 seems like it would confuse applications.
Thoughts?
Daniel
next prev parent reply other threads:[~2005-03-09 0:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-07 10:00 Sébastien Dugué
2005-03-08 6:39 ` Andrew Morton
2005-03-08 9:09 ` Suparna Bhattacharya
2005-03-08 9:18 ` Andrew Morton
2005-03-08 9:41 ` Suparna Bhattacharya
2005-03-08 9:41 ` Andrew Morton
2005-03-08 10:27 ` Suparna Bhattacharya
2005-03-08 10:27 ` Andrew Morton
2005-03-08 17:23 ` Badari Pulavarty
2005-03-08 19:18 ` Badari Pulavarty
2005-03-08 23:27 ` Daniel McNeil [this message]
2005-03-08 23:54 ` Badari Pulavarty
2005-03-09 4:07 ` Joel Becker
2005-03-09 9:50 ` Sébastien Dugué
2005-03-09 15:20 ` Suparna Bhattacharya
2005-03-09 19:53 ` Andrew Morton
2005-03-09 21:18 ` Joel Becker
2005-03-09 21:31 ` Badari Pulavarty
2005-03-09 22:39 ` Andrew Morton
2005-03-09 22:45 ` Badari Pulavarty
2005-03-09 1:44 ` Daniel McNeil
2005-03-09 15:58 ` Badari Pulavarty
2005-03-08 9:46 Sébastien Dugué
2005-03-08 10:16 Sébastien Dugué
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=1110324434.6521.23.camel@ibm-c.pdx.osdl.net \
--to=daniel@osdl.org \
--cc=akpm@osdl.org \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbadari@us.ibm.com \
--cc=sebastien.dugue@bull.net \
--cc=suparna@in.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®