sapling/eden/fs/inodes
Xavier Deguillard 95388f9d3a inodes: move InodePtr and shared_ptr instead of copying them
Summary:
Copying an InodePtr/shared_ptr adds 2 atomics: one for the copy, and one when
the copy is dropped. In the case where a move can be achieved, we can avoid
these atomics and make the code more efficient.

Reviewed By: fanzeyi

Differential Revision: D28614769

fbshipit-source-id: 9c4be6ce335cc17eb889a5681aa9c13595a7909e
2021-05-21 21:41:02 -07:00
..
overlay overlay: only log first 50 fsck errors 2021-04-22 13:12:50 -07:00
sqliteoverlay sqlite: release StatementCache before releasing SqliteDatabase 2021-03-16 23:30:22 -07:00
test stop tracking parent2 2021-05-21 10:53:16 -07:00
treeoverlay inodes: implement FSCK for Windows Tree Overlay 2021-05-17 23:38:02 -07:00
CacheHint.h Tidy up license headers 2019-10-11 05:28:23 -07:00
CheckoutAction.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
CheckoutAction.h Avoid overfetching in checkout 2020-11-03 10:58:22 -08:00
CheckoutContext.cpp stop tracking parent2 2021-05-21 10:53:16 -07:00
CheckoutContext.h stop tracking parent2 2021-05-21 10:53:16 -07:00
CMakeLists.txt nfs: implement SETATTR RPC 2021-03-11 08:31:07 -08:00
DeferredDiffEntry.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
DeferredDiffEntry.h add an ObjectFetchContext interface 2020-02-05 13:15:01 -08:00
DirEntry.cpp remove dependency on glog 2020-11-10 16:31:15 -08:00
DirEntry.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
EdenDispatcherFactory.cpp fs: add an NfsDispatcher 2021-02-17 23:32:38 -08:00
EdenDispatcherFactory.h fs: add an NfsDispatcher 2021-02-17 23:32:38 -08:00
EdenMount.cpp stop tracking parent2 2021-05-21 10:53:16 -07:00
EdenMount.h stop tracking parent2 2021-05-21 10:53:16 -07:00
EdenMountError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
FileInode.cpp fs: shave 136 bytes off FileInode 2021-05-17 14:10:40 -07:00
FileInode.h fs: shave 136 bytes off FileInode 2021-05-17 14:10:40 -07:00
FuseDispatcherImpl.cpp inodes: remove debug logs 2021-05-18 09:08:21 -07:00
FuseDispatcherImpl.h fuse: use ImmediateFuture in the Fuse dispatcher 2021-05-17 14:07:29 -07:00
GlobNode.cpp inodes: move InodePtr and shared_ptr instead of copying them 2021-05-21 21:41:02 -07:00
GlobNode.h inodes: move InodePtr and shared_ptr instead of copying them 2021-05-21 21:41:02 -07:00
InodeBase.cpp inodes: shave 8 byte off of the size of InodeBase 2021-05-17 11:54:52 -07:00
InodeBase.h inodes: shave 8 byte off of the size of InodeBase 2021-05-17 11:54:52 -07:00
InodeError.cpp allow querying Overlay file size outside of FileInode 2020-10-23 11:16:10 -07:00
InodeError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeLoader.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
InodeMap.cpp inodes: convert InodeMap to ImmediateFuture 2021-05-17 14:07:29 -07:00
InodeMap.h inodes: convert InodeMap to ImmediateFuture 2021-05-17 14:07:29 -07:00
InodeMetadata.cpp inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
InodeMetadata.h inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
InodeNumber.cpp inodes: move fuse/InodeNumber.{cpp,h} into inodes/ 2020-09-02 12:15:48 -07:00
InodeNumber.h remove dependency on glog 2020-11-10 16:31:15 -08:00
InodePtr-defs.h remove dependency on glog 2020-11-10 16:31:15 -08:00
InodePtr.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
InodePtr.h remove dependency on glog 2020-11-10 16:31:15 -08:00
InodePtrFwd.h Tidy up license headers 2019-10-11 05:28:23 -07:00
InodeTable.h Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
InodeTimestamps.cpp inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
InodeTimestamps.h inodes: make lastCheckoutTime an EdenTimestamp 2021-04-19 14:38:14 -07:00
IOverlay.h add new operation-aware APIs to IOverlay 2021-03-02 09:58:16 -08:00
NfsDispatcherImpl.cpp inodes: convert InodeMap to ImmediateFuture 2021-05-17 14:07:29 -07:00
NfsDispatcherImpl.h nfs: convert Nfsd3 to ImmediateFuture 2021-05-13 16:51:34 -07:00
Overlay.cpp inodes: implement FSCK for Windows Tree Overlay 2021-05-17 23:38:02 -07:00
Overlay.h inodes: implement FSCK for Windows Tree Overlay 2021-05-17 23:38:02 -07:00
OverlayFile.cpp implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
OverlayFile.h implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
OverlayFileAccess.cpp Back out "checkout: keep InodeNumber constant during checkout" 2021-05-12 12:26:53 -07:00
OverlayFileAccess.h Back out "checkout: keep InodeNumber constant during checkout" 2021-05-12 12:26:53 -07:00
ParentInodeInfo.h Tidy up license headers 2019-10-11 05:28:23 -07:00
PrjfsDispatcherImpl.cpp differentiate EdenConfig and CheckoutConfig in EdenMount 2021-05-17 12:48:03 -07:00
PrjfsDispatcherImpl.h inodes: move dispatchers around 2021-02-10 11:52:06 -08:00
RequestContext.cpp telemetry: switch to using quantile stats instead of histograms 2021-02-14 16:37:08 -08:00
RequestContext.h telemetry: switch to using quantile stats instead of histograms 2021-02-14 16:37:08 -08:00
ServerState.cpp nfs: add NfsServer class 2021-02-09 12:47:11 -08:00
ServerState.h nfs: allow mountd and nfsd sockets to be non-inet on macOS 2021-05-12 13:06:57 -07:00
Traverse.cpp inodes: make loadOverlayDir to return empty dir when missing 2021-03-02 09:58:18 -08:00
Traverse.h inodes: rename FUSE refcount to fs refcount 2020-11-04 17:34:01 -08:00
TreeInode.cpp differentiate EdenConfig and CheckoutConfig in EdenMount 2021-05-17 12:48:03 -07:00
TreeInode.h utils: introduce CaseSensitivity 2021-04-20 13:08:27 -07:00
TreePrefetchLease.cpp limit the number of tree prefetch operations that can run in parallel 2019-12-20 16:14:19 -08:00
TreePrefetchLease.h fix one case of logging of null ClientPid 2020-08-31 10:05:02 -07:00