Messages in this thread | | | Date | Wed, 3 May 2006 07:27:52 +0200 | From | DervishD <> | Subject | Re: O_DIRECT, ext3fs, kernel 2.4.32... again |
| |
Hi Nathan :)
* Nathan Scott <nathans@sgi.com> dixit: > > > Nothing else really make sense due to fcntl... > > > fcntl(fd, F_SETFL, O_DIRECT); > > > ...can happen at any time, to enable/disable direct I/O. > > > > I know, but that fcntl call should fail just like the open() one. > > I mean, I don't find this very different, it's just another point > > where the flag can be activated and so it should fail if the > > underlying filesystem doesn't support it (and doesn't ignore it > > in read()/write()). > > Problem is there is no way to know whether the underlying fs > supports direct IO or not here (fcntl is implemented outside the > filesystem, entirely).
I thought that it was implemented per filesystem.
> Which is not unfixable in itself (could use a superblock flag or > something similar) but it's way out of scope for the sort of change > going into 2.4 these days.
Which approach does 2.6 kernel use? O_DIRECT is correctly handled for ext3 there, AFAIK :? Are the differences too large?
I know that this change would be intrusive and probably large, but IMHO is a quite important bug, because it prevents apps to selectively disable O_DIRECT (the flag is accepted by open(), so there's no reason the app should bother about which caused the read()/write() failures. In fact, is very difficult to know that those failures are caused by partial/buggy support of O_DIRECT flag).
Thanks for the information! :)
Raúl Núñez de Arenas Coronado
-- Linux Registered User 88736 | http://www.dervishd.net http://www.pleyades.net & http://www.gotesdelluna.net It's my PC and I'll cry if I want to... RAmen! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |