VFS Problem: close returns void

Derek Atkins (warlord@mit.edu)
05 Dec 1996 15:48:47 -0500


I've recently noticed a problem with the Linux VFS layer which is
evident when you use a caching filesystem that performs delayed
writes. When writing using such a filesystem (AFS does this) the
writes go into the cache, which returns success to the user. Then
when the file is closed, the cached file gets flushed to the server.

The problem is that this server flush in close() can fail, but there
is no way in the VFS layer to report this failure to the user.

I don't have a POSIX manual near me, so I can't verify my
interpretation. Although I suspect the response will be "AFS isn't
POSIX compliant", I still believe that the kernel should be able to
inform the user that a close failed. Filesystems that perform
write-through caching wont be affected at all, but filesystems that
behave like AFS will still be able to let users know when they go over
quota writing a file.

Comments?

-derek