sapling/eden/fs/inodes
Chad Austin acaba247cf implement FUSE_FALLOCATE
Summary:
Some linkers (lld being one) use fallocate() or posix_fallocate() on
the output file before writing its contents. EdenFS would return
ENOSYS or ENOTSUP so glibc would fall back and write a single byte to
every 512 byte block, which is terribly slow and generates a bunch of
fake traffic in the Watchman journal.

This diff implements basic support for FUSE_FALLOCATE, avoiding this
slow emulation.

Reviewed By: xavierd

Differential Revision: D25934694

fbshipit-source-id: c6c90ea2b517d4dbedce29d9a4340870c8c177c3
2021-01-20 19:04:59 -08:00
..
overlay Rename Try::throwIfFailed -> throwUnlessValue 2021-01-11 13:05:17 -08:00
sqliteoverlay Remove dead includes in eden 2020-10-09 15:25:47 -07:00
test Apply clang-format update fixes 2021-01-10 10:06:29 -08: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 Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
CheckoutContext.h logging for thrift object fetch: checkout 2020-07-26 23:09:40 -07:00
CMakeLists.txt move strace logging into FuseChannel 2020-10-20 09:34:03 -07: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 remove dependency on glog 2020-11-10 16:31:15 -08:00
EdenDispatcher.cpp implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
EdenDispatcher.h implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
EdenMount.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
EdenMount.h prjfs: add partial support for debug processfetch on Windows 2020-10-05 15:46:02 -07:00
EdenMountError.h Tidy up license headers 2019-10-11 05:28:23 -07:00
FileInode.cpp implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
FileInode.h implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
GlobNode.cpp Rename Try::throwIfFailed -> throwUnlessValue 2021-01-11 13:05:17 -08:00
GlobNode.h Allow specifying commits to match against and prefetch in globFiles 2020-10-29 13:34:06 -07:00
InodeBase.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
InodeBase.h inodes: make the fs refcount a flag on Windows 2020-12-04 09:13:37 -08: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 edenfs: change PathMap CaseSensitivity to runtime option 2020-09-18 08:43:14 -07:00
InodeMap.cpp inodes: make the fs refcount a flag on Windows 2020-12-04 09:13:37 -08:00
InodeMap.h inodes: rename the fuseRefcount in InodeMap 2020-11-16 09:03:18 -08:00
InodeMetadata.cpp fs: ifdef linux/macos only files 2020-09-23 12:20:41 -07:00
InodeMetadata.h Tidy up license headers 2019-10-11 05:28:23 -07: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 Inode support on Windows 2020-04-01 14:53:30 -07:00
InodeTimestamps.h Inode support on Windows 2020-04-01 14:53:30 -07:00
Overlay.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
Overlay.h externally log result of fsck scans 2020-11-12 13:47:50 -08: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 implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
OverlayFileAccess.h implement FUSE_FALLOCATE 2021-01-20 19:04:59 -08:00
ParentInodeInfo.h Tidy up license headers 2019-10-11 05:28:23 -07:00
RequestContext.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
RequestContext.h fuse: move and rename RequestData 2020-09-04 16:14:24 -07:00
ServerState.cpp eden: fix Windows build 2020-05-04 11:53:33 -07:00
ServerState.h eden: fix Windows build 2020-05-04 11:53:33 -07:00
Traverse.cpp Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
Traverse.h inodes: rename FUSE refcount to fs refcount 2020-11-04 17:34:01 -08:00
TreeInode.cpp Rename Try::throwIfFailed -> throwUnlessValue 2021-01-11 13:05:17 -08:00
TreeInode.h inodes: increment and decrement the fs refcount on Windows 2020-12-04 09:13:38 -08: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