Messages in this thread |  | | Date | Wed, 4 Sep 1996 06:32:56 -0400 (EDT) | From | Michael Callahan <> | Subject | VFS interface omission? -- doesn't expose fstat |
| |
Consider a program that opens a file, sleeps for a long time, and then does fstat on the file descriptor. In the current Linux VFS setup, it appears that the filesystem layer is totally out of the loop: the information is copied from the in-memory inode into the user's stat buffer and that's it. Although this information should be correct for a disk-based filesystem, in a distributed filesystem the inode attributes may of course change in a way unknown to the local kernel.
In contrast, the *BSD* (etc) VFS has a GETATTR operation that allows the filesystem to intervene at this point. In fact, this observation came up in thinking about how some code written to that interface would work in Linux.
As far as I can tell, fstat is the only case where the kernel might use an inode without giving the filesystem layer some chance to update the inode information. Note that stat, for example, is not afflicted by the same problem: it does a lookup VFS operation to find the inode of interest. The lookup operation can revalidate the looked-up inode before returning it. (This is what Linux NFS does, for example.)
Michael
|  |