sapling/eden/fs/inodes
Wez Furlong 530346887d split EdenMount::{create,initialize} -> safer takeover mounting
Summary:
Previously, `EdenMount::create` would implicitly call
`EdenMount::initialize` which would load the root inode and the `.eden` magical
directory.  That's fine for the fresh mount case, but in the case of the
graceful restart we need to take the opportunity to apply the `InodeMap`
from the old process before we start muddying its state.

This diff breaks out the `initialize` method from the `create` method and
makes the mount code call it after potentially loading the `InodeMap` from
the takeover data.

In addition, this diff removes the the `root->loadMaterializedChildren()`
call from the mount initialization code.  It is no longer required to do
this eagerly and it makes things simpler and our memory profile a little
smaller to defer this (I haven't measured how much that impacts things).

Reviewed By: simpkins

Differential Revision: D6691182

fbshipit-source-id: 52033a6d64105b658314a919f69dbfcd4eea242b
2018-01-10 13:13:50 -08:00
..
test open file handles now survive graceful restart 2018-01-09 22:23:11 -08:00
CheckoutAction.cpp Change how the UNTRACKED_ADDED conflict and merges are handled. 2017-11-29 21:50:34 -08:00
CheckoutAction.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
CheckoutContext.cpp Removed all folly::fbstring uses from eden. 2018-01-03 16:41:34 -08:00
CheckoutContext.h Change how the UNTRACKED_ADDED conflict and merges are handled. 2017-11-29 21:50:34 -08:00
DeferredDiffEntry.cpp add debug logging for TreeInode::diff() 2017-11-08 21:39:07 -08:00
DeferredDiffEntry.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
DiffContext.cpp Added user and general system level gitignore 2017-12-08 12:52:51 -08:00
DiffContext.h Added user and general system level gitignore 2017-12-08 12:52:51 -08:00
Differ.cpp add scmGetStatusBetweenRevisions thrift call 2017-11-28 19:36:32 -08:00
Differ.h add scmGetStatusBetweenRevisions thrift call 2017-11-28 19:36:32 -08:00
EdenDispatcher.cpp remove dep on libfuse 2018-01-02 16:36:16 -08:00
EdenDispatcher.h remove dep on libfuse 2018-01-02 16:36:16 -08:00
EdenMount.cpp split EdenMount::{create,initialize} -> safer takeover mounting 2018-01-10 13:13:50 -08:00
EdenMount.h split EdenMount::{create,initialize} -> safer takeover mounting 2018-01-10 13:13:50 -08:00
FileHandle.cpp have ensureDataLoaded() return a FileHandle 2018-01-03 17:38:48 -08:00
FileHandle.h have ensureDataLoaded() return a FileHandle 2018-01-03 17:38:48 -08:00
FileInode.cpp fix typo in comment 2018-01-08 11:51:29 -08:00
FileInode.h make readIntoBuffer private 2018-01-03 17:38:48 -08:00
InodeBase.cpp Removed all folly::fbstring uses from eden. 2018-01-03 16:41:34 -08:00
InodeBase.h InodeBase::incFuseRefcount allows arbitrary count 2018-01-05 14:22:22 -08:00
InodeDiffCallback.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeError.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeError.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeMap.cpp split EdenMount::{create,initialize} -> safer takeover mounting 2018-01-10 13:13:50 -08:00
InodeMap.h serialize the InodeMap 2018-01-09 22:23:10 -08:00
InodePtr-defs.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodePtr.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodePtr.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodePtrFwd.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
Overlay.cpp Removed all folly::fbstring uses from eden. 2018-01-03 16:41:34 -08:00
Overlay.h remove dep on libfuse 2018-01-02 16:36:16 -08:00
overlay.thrift remove unused thrift struct 2018-01-05 14:22:20 -08:00
ParentInodeInfo.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
TARGETS open file handles now survive graceful restart 2018-01-09 22:23:11 -08:00
TreeInode.cpp Changed TreeInode::loadGitIgnoreThenDiff() to properly handle symlinks to gitignore. 2018-01-05 15:51:04 -08:00
TreeInode.h remove dep on libfuse 2018-01-02 16:36:16 -08:00
TreeInodeDirHandle.cpp remove dep on libfuse 2018-01-02 16:36:16 -08:00
TreeInodeDirHandle.h remove dep on libfuse 2018-01-02 16:36:16 -08:00