Messages in this thread | | | From | Robert Hancock <> | Subject | Re: open(2) says O_DIRECT works on 512 byte boundries? | Date | Wed, 28 Jan 2009 18:41:49 -0600 |
| |
Greg KH wrote: > In looking at open(2), it says that O_DIRECT works on 512 byte boundries > with the 2.6 kernel release: > Under Linux 2.4, transfer sizes, and the alignment of the user > buffer and the file offset must all be multiples of the logical > block size of the file system. Under Linux 2.6, alignment to > 512-byte boundaries suffices. > > However if you try to access an O_DIRECT opened file with a buffer that > is PAGE_SIZE aligned + 512 bytes, it fails in a bad way (wrong data is > read.) > > Is this just a mistake in the documentation? Or am I reading it > incorrectly? > > I have a test program that shows this if anyone wants it.
Well, it sounds like a bug to me.. even if it's not supported, if you do such an access, surely the kernel should detect that and return EINVAL or something rather than reading corrupted data..
| |