(Illustration by Gaich Muramatsu)
On Tue, Dec 04, 2001 at 08:20:44AM +0100, Florian Schaefer wrote: > On Mon, 3 Dec 2001 16:16:12 -0500, Jan Harkes said: > > I guess once in a blue moon, the O_DIRECT bit will be set and the > > readdir will fail in the DirectIO path, while otherwise it will run > > fine. Could you try the following patch to linux/fs/coda/dir.c > > I just applied it and recompiled the module. At a first glance this seems > to have solved my problems. Thanks a lot. :-) Cool I'll forward it to Marcelo and Linus so that it can go into 2.4.17 and 2.5.1 or something. > BTW: Any idea, how starting XFree gave me access to my coda volume? Just a hunch. Most kernel data structures are taken from the slabcache, which is a pool of pre-allocated structs. Before XFree starts we were using uninitialized structs that had never been used before, so there was a 50% chance that the O_DIRECT bit in f_flags was set. Once XFree has started it probably had opened and closed a lot of files, so most structs in the slabcache were previously used and thus 'initialized' by the previous open so there is a far higher chance that we get a struct file with the O_DIRECT bit cleared. JanReceived on 2001-12-04 11:44:31