When a client writes to a cached file, the FlexCache volume proxies the write request to the origin volume, which makes the requested changes. The FlexCache volume is then updated to reflect the changes.
When writes are relayed through the FlexCache volume, if that volume contains the portion of the file that is changing, the entire file is invalidated from the FlexCache volume. In addition, the origin volume revokes any delegation to the file. On subsequent access of the new data, the cache volume requests the data from the origin volume.
If other FlexCache volumes are mapped to the origin volume and if they contain the changed data, then the origin volume revokes all delegations to the cached data in the FlexCache volumes. If the cached data on any of these FlexCache volumes is accessed after the attribute cache timeout expires, the particular FlexCache volume verifies the file attributes with those on the origin volume, invalidates its own copy of the cached file, and stores the updated file.