sapling/eden/fs
Xavier Deguillard 8391057f7d nfs: open files to do invalidation
Summary:
An NFS client caches the attributes of files to avoid having to request these
very frequently. What this means is that a file changed by another client (or
by the server itself) may take some time to be reflected on the client, that
time depends on the attribute caching configuration of the mount point.

For EdenFS, files can changed in 2 ways:
 - Either it is changed by the user via the mount point,
 - Or the user runs an `hg update`

For the first one, the client will simply update its attributes appropriately,
but for the second one, the cached attributes will only be updated when the
user does opens the file, any calls to stat prior will return the old
attributes. Since EdenFS runs on the same host, we can force the attributes
caches to be discarded by simply issuing an open call on the file that changed.

Reviewed By: chadaustin

Differential Revision: D28456482

fbshipit-source-id: 91022d35a33e436c47d94403d0c139992f880cf9
2021-05-26 14:05:48 -07:00
..
benchharness add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
benchmarks benchmarks: add a globbing benchmark 2021-05-21 19:26:46 -07:00
cli add a v2 SNAPSHOT format 2021-05-21 10:53:16 -07:00
cli_rs Resolve bare_trait_objects warnings in path components 2021-05-19 22:03:56 -07:00
config hg: promote batch size to a configuration option 2021-05-24 19:17:17 -07:00
docs run linter in eden/fs/docs 2021-01-25 16:13:54 -08:00
fuse fuse: use ImmediateFuture in the Fuse dispatcher 2021-05-17 14:07:29 -07:00
inodes nfs: open files to do invalidation 2021-05-26 14:05:48 -07:00
journal use portable version of gtest 2021-05-12 15:58:27 -07:00
model stop tracking parent2 2021-05-21 10:53:16 -07:00
monitor Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
nfs nfs: open files to do invalidation 2021-05-26 14:05:48 -07:00
notifications notifications: support Windows 2020-11-11 09:37:56 -08:00
prjfs Fix unused parameters on PrjfsChannel.cpp 2021-05-25 19:45:22 -07:00
py Backout py3 only changes from windows_thrift 2021-04-22 10:29:49 -07:00
rocksdb Remove dead includes in eden 2019-10-11 16:45:01 -07:00
scripts move eden/scripts/ into eden/fs/ 2020-11-04 18:29:49 -08:00
service Fix unused parameters on EdenServiceHandler 2021-05-25 10:30:29 -07:00
sqlite overlay: use PersistentSqliteStatement in TreeOverlayStore 2021-03-15 12:01:48 -07:00
store hg: promote batch size to a configuration option 2021-05-24 19:17:17 -07:00
takeover use portable version of gtest 2021-05-12 15:58:27 -07:00
telemetry use portable version of gtest 2021-05-12 15:58:27 -07:00
testharness remove support for legacy SNAPSHOT files 2021-05-21 10:53:16 -07:00
third-party fs: update fuse_kernel_linux.h 2021-03-17 20:55:43 -07:00
utils Not use gtest for UserInfo.h on Windows 2021-05-25 23:55:08 -07:00
CMakeLists.txt nfs: make it compile with getdeps builds 2021-02-03 17:54:54 -08:00