sapling/eden/fs/inodes
Adam Simpkins a598e8c334 implement Inode unloading
Summary:
This updates the InodePtr and InodeBase code to actually implement Inode
unloading and destruction.

At the moment we keep Inode objects as long as possible, and only unload them
during shutdown, or when the last reference to an unlinked inode goes away.
However, it should be straightforward to add on-demand unloading in the future
for Inodes that have not been accessed in a while.  The
TreeInode::unloadChildrenNow() function provides a template for what this would
look like (it would simply need to be changed to check an access time when
doing on-demand unloading).

Reviewed By: wez

Differential Revision: D4360765

fbshipit-source-id: a46b355f0ac0c25f873a156e62af5184317de735
2017-01-17 15:03:20 -08:00
..
test add new InodePtr classes 2017-01-17 15:03:20 -08:00
Dirstate.cpp add new InodePtr classes 2017-01-17 15:03:20 -08:00
Dirstate.h add new InodePtr classes 2017-01-17 15:03:20 -08:00
DirstatePersistence.cpp write dirstate file atomically 2016-12-01 17:52:30 -08:00
DirstatePersistence.h Flip Dirstate -> EdenMount dependency. 2016-11-26 12:01:41 -08:00
EdenDispatcher.cpp implement Inode unloading 2017-01-17 15:03:20 -08:00
EdenDispatcher.h update code to use InodeMap 2016-12-22 15:36:29 -08:00
EdenMount.cpp add an EdenMount::destroy() function 2017-01-17 15:03:20 -08:00
EdenMount.h add an EdenMount::destroy() function 2017-01-17 15:03:20 -08:00
EdenMounts.cpp update code to use InodeMap 2016-12-22 15:36:29 -08:00
EdenMounts.h Introduce Dirstate::getStatusForDirectory(). 2016-12-13 12:00:22 -08:00
FileData.cpp Update FileData to store a pointer to its FileInode 2016-12-22 15:36:29 -08:00
FileData.h Update FileData to store a pointer to its FileInode 2016-12-22 15:36:29 -08:00
FileHandle.cpp Remove FileInode::parentInode_ 2016-12-22 15:36:29 -08:00
FileHandle.h add InodePtr, TreeInodePtr, and FileInodePtr type names 2016-12-12 17:50:35 -08:00
FileInode.cpp add new InodePtr classes 2017-01-17 15:03:20 -08:00
FileInode.h add new InodePtr classes 2017-01-17 15:03:20 -08:00
InodeBase.cpp implement Inode unloading 2017-01-17 15:03:20 -08:00
InodeBase.h implement Inode unloading 2017-01-17 15:03:20 -08:00
InodeError.cpp add a new InodeError class 2016-12-14 15:36:11 -08:00
InodeError.h add new InodePtr classes 2017-01-17 15:03:20 -08:00
InodeMap.cpp implement Inode unloading 2017-01-17 15:03:20 -08:00
InodeMap.h implement Inode unloading 2017-01-17 15:03:20 -08:00
InodePtr-defs.h implement Inode unloading 2017-01-17 15:03:20 -08:00
InodePtr.cpp add new InodePtr classes 2017-01-17 15:03:20 -08:00
InodePtr.h implement Inode unloading 2017-01-17 15:03:20 -08:00
InodePtrFwd.h add new InodePtr classes 2017-01-17 15:03:20 -08:00
Overlay.cpp ensure that we set materialized=true when loading overlay 2016-09-26 13:54:14 -07:00
Overlay.h eden: re-do overlay serialization 2016-09-09 16:57:58 -07:00
overlay.thrift Flip Dirstate -> EdenMount dependency. 2016-11-26 12:01:41 -08:00
ParentInodeInfo.h implement Inode unloading 2017-01-17 15:03:20 -08:00
TARGETS codemod: fixup more build targets in TARGETS 2017-01-14 01:44:01 -08:00
TreeInode.cpp implement Inode unloading 2017-01-17 15:03:20 -08:00
TreeInode.h implement Inode unloading 2017-01-17 15:03:20 -08:00
TreeInodeDirHandle.cpp update code to use InodeMap 2016-12-22 15:36:29 -08:00
TreeInodeDirHandle.h add InodePtr, TreeInodePtr, and FileInodePtr type names 2016-12-12 17:50:35 -08:00