All time stamps on files are stamped and propagated to other SFTs when the file is closed or committed (flushed). If a file is opened at time 1, written to at time 2, and closed at time 3, the last write time will be time 3. Subdirectories only have creation time stamps.
The sfi_tstamp field of the file instance structure sffsi contains six flags:
Name | Value | Description |
---|---|---|
ST_SCREAT | 1 | stamp creation time |
ST_PCREAT | 2 | propagate creation time |
ST_SWRITE | 4 | stamp last write time |
ST_PWRITE | 8 | propagate last write time |
ST_SREAD | 16 | stamp last read time |
ST_PREAD | 32 | propagate last read time |
These flags are cleared when an SFT is created, and some of them may eventually be set by a file system worker routine. They are examined when the file is closed or flushed.
For each time stamp, there are three meaningful actions:
ST_Sxxx | ST_Pxxx | Action |
---|---|---|
clear | clear | don't do anything |
set | set | stamp and propagate (to other SFTs and disk) |
clear | set | don't stamp, but propagate existing value |