sapling/eden/fs
Xavier Deguillard ef4db32904 inodes: invalidate more on Windows
Summary:
Cache invalidation is hard, and on Windows we avoided doing a lot of them. It
turns out, this was the wrong decision as it's fairly easy to find cases where
the filesystem view is different from the manifest state.

Since the Linux code is most likely correct in where the invalidation is done,
let's also do the same on Windows, removing a whole lot of #ifdef. It is very
likely that as a result of this diff we end up invalidating more than needed,
thus slowing down EdenFS, but at this point I'd prefer to err on the side of
correctness, performance will come later.

While invalidating files should use PrjDeleteFile, for directories, we simply
need to mark them as placeholder, as directories created by a user won't have a
placeholder, thus ProjectedFS would bypass EdenFS when listing in.

Reviewed By: chadaustin

Differential Revision: D22833202

fbshipit-source-id: d807557f5e44279c49ab701b7a797253ef1f0717
2020-08-03 11:26:31 -07:00
..
benchharness add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
benchmarks add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
cli fix typo in restarter log message 2020-08-03 11:19:21 -07:00
config Migrate to field_ref Thrift API 2020-07-21 11:23:35 -07:00
docs Some minor modifications to verbiage in documentation 2020-07-06 22:20:17 -07:00
fuse simplify BufVec (for now) 2020-08-03 11:16:06 -07:00
inodes inodes: invalidate more on Windows 2020-08-03 11:26:31 -07:00
journal Migrate to field_ref Thrift API 2020-07-28 14:32:44 -07:00
model model: report symlink/executable as regular files on Windows 2020-05-12 08:46:35 -07:00
monitor enable log rotation in edenfs_monitor 2020-05-07 20:05:46 -07:00
notifications eden: show desktop notification for blob/tree fetch errors 2020-02-10 08:28:49 -08:00
py thrift: do not test for socket before connecting to it 2020-07-22 15:37:14 -07:00
rocksdb Remove dead includes in eden 2019-10-11 16:45:01 -07:00
service don't make local store compaction on graceful restart a hard failure 2020-08-03 07:20:55 -07:00
sqlite silence some msvc warnings from sqlite.{h,cpp} 2020-04-26 21:14:24 -07:00
store log fetch-heavy processes to Scuba at each 2000 more fetches 2020-08-03 11:13:20 -07:00
takeover Migrate to field_ref Thrift API 2020-07-21 11:23:35 -07:00
telemetry win: when creating a file/directory, create the parents too 2020-07-29 12:17:17 -07:00
testharness make rename explicit about kernel cache invalidation 2020-07-28 14:47:40 -07:00
third-party eden: support NO_OPEN support on macOS 2020-07-27 17:53:03 -07:00
utils add space between command name and args when logging fetch heavy processes to Scuba 2020-07-31 11:42:51 -07:00
win inodes: invalidate more on Windows 2020-08-03 11:26:31 -07:00
CMakeLists.txt revert: Run Eden as a Windows service 2020-05-28 09:01:03 -07:00