sapling/eden/fs/inodes
Chad Austin 6db3bf461d fix truncation not marking files as modified
Summary:
If a file was partially truncated, it would not always be marked as
materialized. During materialization, the SHA-1 would be cached,
but not invalidated after the truncation.

Write tests that ensure that both ftruncate and O_TRUNC mark files as
modified.

Reviewed By: simpkins

Differential Revision: D13329102

fbshipit-source-id: f09fdc5f11f1da25e1b4453de1b29d1390b3dc71
2018-12-04 16:27:46 -08:00
..
test be explicit that we don't plan to use ATOMIC_O_TRUNC 2018-11-29 11:22:58 -08:00
CacheHint.h add CacheHint parameters to FileInode reads 2018-11-22 00:45:25 -08:00
CheckoutAction.cpp folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
CheckoutAction.h folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
CheckoutContext.cpp folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
CheckoutContext.h Enabled additional compiler warnings in Eden. 2018-06-01 11:39:01 -07:00
CMakeLists.txt update the CMake based build with new dependencies 2018-10-23 13:42:12 -07:00
DeferredDiffEntry.cpp folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
DeferredDiffEntry.h Enabled additional compiler warnings in Eden. 2018-06-01 11:39:01 -07:00
DiffContext.cpp DiffContext changes to use TopLevelIgnores 2018-07-19 17:21:38 -07:00
DiffContext.h DiffContext changes to use TopLevelIgnores 2018-07-19 17:21:38 -07:00
Differ.cpp folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
Differ.h update getScmStatus() to require the commit hash as an argument 2018-04-06 12:51:31 -07:00
DirEntry.cpp clarify DirEntry's ownership of InodeBase* 2018-07-17 21:37:35 -07:00
DirEntry.h folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
EdenDispatcher.cpp be explicit that we don't plan to use ATOMIC_O_TRUNC 2018-11-29 11:22:58 -08:00
EdenDispatcher.h don't route fsyncdir through DirHandle 2018-12-03 17:43:34 -08:00
EdenFileHandle.cpp move write from EdenFileHandle to FileInode 2018-10-08 15:11:55 -07:00
EdenFileHandle.h move write from EdenFileHandle to FileInode 2018-10-08 15:11:55 -07:00
EdenMount.cpp have FileInode read blobs through BlobAccess 2018-11-28 17:33:35 -08:00
EdenMount.h have FileInode read blobs through BlobAccess 2018-11-28 17:33:35 -08:00
EdenMountError.h propagate bind mount errors 2018-10-09 16:39:45 -07:00
FileInode.cpp fix truncation not marking files as modified 2018-12-04 16:27:46 -08:00
FileInode.h be explicit that we don't plan to use ATOMIC_O_TRUNC 2018-11-29 11:22:58 -08:00
GlobNode.cpp convert some deprecated Future::then() calls 2018-10-23 13:42:12 -07:00
GlobNode.h move GlobNode -> inodes dir 2018-07-13 11:22:19 -07:00
InodeBase.cpp remove overlay timestamp migration logic 2018-11-28 15:44:58 -08:00
InodeBase.h remove overlay timestamp migration logic 2018-11-28 15:44:58 -08:00
InodeDiffCallback.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeError.cpp folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
InodeError.h folly::Optional -> std::optional 2018-10-23 18:51:59 -07:00
InodeLoader.h convert some deprecated Future::then() calls 2018-10-22 20:27:25 -07:00
InodeMap.cpp Add command to chown a mount 2018-11-07 08:58:31 -08:00
InodeMap.h Add command to chown a mount 2018-11-07 08:58:31 -08:00
InodeMetadata.cpp allow changing uid/gid on files and directories 2018-05-24 00:15:54 -07:00
InodeMetadata.h allow changing permissions on directories 2018-05-22 11:22:19 -07:00
InodePtr-defs.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodePtr.cpp fix opt build 2018-03-12 22:22:59 -07:00
InodePtr.h add explicit conversion from std::unique_ptr to InodePtr 2018-03-09 13:37:08 -08:00
InodePtrFwd.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeTable.h Add command to chown a mount 2018-11-07 08:58:31 -08:00
InodeTimestamps.cpp mark parts of EdenTimestamp noexcept 2018-05-09 16:50:52 -07:00
InodeTimestamps.h update mtime on directories when renaming 2018-06-01 11:39:01 -07:00
Overlay.cpp stop reading timestamps from the overlay 2018-11-26 11:59:25 -08:00
Overlay.h stop reading timestamps from the overlay 2018-11-26 11:59:25 -08:00
overlay.thrift decouple whether an entry has an inode number from materialization status 2018-03-23 18:21:21 -07:00
ParentInodeInfo.h Split Dir into its own type and move TreeInodeState out of TreeInode 2018-06-01 09:38:45 -07:00
ServerState.cpp Win: Porting eden/service to Windows with fb-thrift 2018-10-22 20:27:26 -07:00
ServerState.h pass ReloadableConfig down to HgBackingStore ctor 2018-10-31 11:50:38 -07:00
TopLevelIgnores.h Remove unused code for ingesting system and user ignore files 2018-07-30 19:06:33 -07:00
TreeInode.cpp remove overlay timestamp migration logic 2018-11-28 15:44:58 -08:00
TreeInode.h remove overlay timestamp migration logic 2018-11-28 15:44:58 -08:00
TreeInodeDirHandle.cpp don't route fsyncdir through DirHandle 2018-12-03 17:43:34 -08:00
TreeInodeDirHandle.h don't route fsyncdir through DirHandle 2018-12-03 17:43:34 -08:00