sapling/eden/fs
Xavier Deguillard ec5a6ef1f0 nfs: implement the READDIR RPC
Summary:
The NFS readdir turns out to be pretty similar to the FUSE one, with a couple
of differences. For one, it only populates the directory entry name, it also
puts a limit on the total size of the serialized result, including all the
NFS/XDR overhead.

It is not specified if the . and .. entries need to be returned, but since the
NFS spec is usually pretty explicit about these and makes it clear that this is
for the most part a client burden, I didn't add these. I may have to revisit
this later when I get to manually browse a repository.

Since the READDIR RPC doesn't populate any filehandle, the client will have to
issue a LOOKUP RPC for each entries, potentially leading to some
inefficiencies. A future diff will implement the READDIRPLUS to fix these.

Reviewed By: chadaustin

Differential Revision: D26802310

fbshipit-source-id: b821b57021d0c2dca33427975b1acd665173bc5c
2021-03-18 10:08:50 -07:00
..
benchharness add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
benchmarks Remove dead includes in eden 2020-10-09 15:25:47 -07:00
cli Fix environment in subprocess calls 2021-03-17 18:59:49 -07:00
cli_rs make input loop eden top 2021-03-08 18:03:57 -08:00
config log a structured event when a proxy hash lookup fails 2021-03-12 10:42:46 -08:00
docs run linter in eden/fs/docs 2021-01-25 16:13:54 -08:00
fuse privhelper: disable READDIRPLUS 2021-03-18 10:08:49 -07:00
inodes nfs: implement the READDIR RPC 2021-03-18 10:08:50 -07:00
journal journal: coalesce no-op checkout events 2021-02-26 16:28:44 -08:00
model optimize HgProxyHash some and make loading from LocalStore explicit 2021-03-12 10:42:46 -08:00
monitor Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
nfs nfs: implement the READDIR RPC 2021-03-18 10:08:50 -07:00
notifications notifications: support Windows 2020-11-11 09:37:56 -08:00
prjfs telemetry: switch to using quantile stats instead of histograms 2021-02-14 16:37:08 -08:00
py Add annotations to eden/fs/py/test/dirstate_test.py 2021-03-17 14:15:25 -07:00
rocksdb Remove dead includes in eden 2019-10-11 16:45:01 -07:00
scripts move eden/scripts/ into eden/fs/ 2020-11-04 18:29:49 -08:00
service log a structured event when a proxy hash lookup fails 2021-03-12 10:42:46 -08:00
sqlite overlay: use PersistentSqliteStatement in TreeOverlayStore 2021-03-15 12:01:48 -07:00
store supress deprecated error for INSTANTIATE_TEST_CASE_P 2021-03-15 15:29:12 -07:00
takeover changing AsyncServerSocket::acceptError to receive exception_wrapper 2021-02-20 08:01:53 -08:00
telemetry log a structured event when a proxy hash lookup fails 2021-03-12 10:42:46 -08:00
testharness inodes: make InodeBase::setattr independant from FUSE 2021-03-05 11:11:19 -08:00
third-party fs: update fuse_kernel_linux.h 2021-03-17 20:55:43 -07:00
utils fix compilation error of missing type 2021-03-15 22:31:25 -07:00
CMakeLists.txt nfs: make it compile with getdeps builds 2021-02-03 17:54:54 -08:00