sapling/eden/fs/testharness
Adam Simpkins fbeb35cbdc fix issues tracking the last checkout time
Summary:
Eden attempts to initialize timestamps of newly loaded inodes with the time of
the last checkout operation performed in this mount.  Unfortunately it had a
number of bugs in this logic:

EdenMount had two separate fields attempting to track the last checkout time:
`lastCheckoutTime_` and `parentInfo_.lastCheckoutTime`.

Unfortunately neither field was actually updated on checkout operations.
Additionally, `lastCheckoutTime_` did not have any locking to allow it to be
updated.  `parentInfo_.lastCheckoutTime` did have locking, but it used the
mount point's checkout lock, so it could not be accessed during checkout
operations.

This diff removes `parentInfo_.lastCheckoutTime`, keeping only
`lastCheckoutTime_`.  It also converts `lastCheckoutTime_` to a
`struct timespec` since this is most often needed as a `timespec`.  It also
adds a new mountpoint-wide lock for synchronizing accessing to this variable.

Reviewed By: bolinfest

Differential Revision: D6356698

fbshipit-source-id: db54f9bb297b5febe4642e2b3fcc8055a6afc199
2017-11-19 15:47:13 -08:00
..
test remove eden/fs/utils/test/TestChecks.h 2017-11-15 12:53:55 -08:00
FakeBackingStore.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FakeBackingStore.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FakeObjectStore.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FakeObjectStore.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FakeTreeBuilder.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FakeTreeBuilder.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
HgRepo.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
HgRepo.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
StoredObject.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
TARGETS Run the autodeps script on our build files. 2017-11-14 11:18:19 -08:00
TestChecks.h Change FileInode::readAll's public API to be async 2017-11-03 17:51:42 -07:00
TestMount.cpp fix issues tracking the last checkout time 2017-11-19 15:47:13 -08:00
TestMount.h Store Hg dirstate data in Hg instead of Eden. 2017-11-06 19:56:49 -08:00
TestUtil.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
TestUtil.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00