Skip to content

Commit

Permalink
Documented another mtime subtlety.
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobsa committed Aug 13, 2015
1 parent 8f8d260 commit 289c4eb
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions docs/semantics.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,11 +224,20 @@ actor in the meantime.) There are no guarantees about whether local
modifications are reflected in GCS after writing but before syncing or closing.

Modification time (`stat::st_mtime` on Linux) is tracked for file inodes, and
can be updated in usual the usual way using `utimes(2)` or `futimens(2)`.
(Special case: mtime updates may be silently lost for unlinked inodes.) When
can be updated in usual the usual way using `utimes(2)` or `futimens(2)`. When
dirty inodes are written out to GCS objects, mtime is stored in the custom
metadata key `gcsfuse_mtime` in an unspecified format.

There are two special cases worth mentioning:

* mtime updates to unlinked inodes may be silently lost. (Of course content
updates to these inodes will also be lost once the file is closed.)

* If an mtime update is made to a GCS object remotely (e.g. due to another
system running gcsfuse calling `utimes(2)`) and an inode has already been
assigned for that object locally, the mtime update will not be reflected
locally.

<a name="file-inode-identity"></a>
### Identity

Expand Down

0 comments on commit 289c4eb

Please sign in to comment.