Harald Barth wrote:
It is supposed to be the case that when a file becomes unreferenced
(goes "inactive" in bsd parlance) that dirty data is thrown away on
the grounds that it can only still be around due to a write error.We
really should not invalidate the data any sooner than that, since
existing mmaps/etc may be referring to it.

I think a write error should trigger the same invalidation as a
callback because that means that the data is not in sync with the data
on the server any more. Even if a file is open and referenced, a callback can arrive and invalidate. (insert disclaimer here :)

Harald.

The receipt of a callback does not invalidate the data.   The receipt
of a callback simply means that some state change occurred on the file
server and the client must request an updated status.   The data is
only invalid if after obtaining the revised status the client recognizes
that the data version in the cache is no longer consistent with the
data version on the file server.

A write error might be caused by a failure in the communication
path between the client and the file server.  Such a failure should not
result in the data being discarded from the cache.  However, the
cache manager must ensure that the dirty pages will be written back
to the file server at a later point in time when the file server is
once again accessible.

Jeffrey Altman


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to