Messages in this thread | | | Date | Mon, 02 May 2016 21:32:55 +0300 | From | Boaz Harrosh <> | Subject | Re: [PATCH v4 5/7] fs: prioritize and separate direct_io from dax_io |
| |
On 05/02/2016 09:10 PM, Dan Williams wrote: <> > > The semantic I am talking about preserving is: > > buffered / unaligned write of a bad sector => -EIO on reading into the > page cache >
What about aligned buffered write? like write 0-to-eof This still broken? (and is what restore apps do)
> ...and that the only guaranteed way to clear an error (assuming the > block device supports it) is an O_DIRECT write. >
Sure fixing dax_do_io will guaranty that.
<> > I still think we're talking past each other on this point.
Yes we are!
> This patch > set is not overloading error semantics, it's fixing the error handling > problem that was introduced in this commit: > > d475c6346a38 dax,ext2: replace XIP read and write with DAX I/O > > ...where we started overloading O_DIRECT and dax_do_io() semantics. >
But above does not fix them does it? it just completely NULLs DAX for O_DIRECT which is a great pity, why did we do all this work in the first place.
And then it keeps broken the aligned buffered writes, which are still broken after this set.
I have by now read the v2 patches. And I think you guys did not yet try the proper fix for dax_do_io. I think you need to go deeper into the loops and selectively call bdev_* when error on a specific page copy. No need to go through direct_IO path at all. Do you need that I send you a patch to demonstrate what I mean?
But yes I feel too that "we're talking past each other". I did want to come to LSF and talk to you, but was not invited. Should I call you?
Thanks Boaz
| |