gvisor/pkg/sentry
Michael Pratt 085a907565 Cache directory entries in the overlay
Currently, the overlay dirCache is only used for a single logical use of
getdents. i.e., it is discard when the FD is closed or seeked back to
the beginning.

But the initial work of getting the directory contents can be quite
expensive (particularly sorting large directories), so we should keep it
as long as possible.

This is very similar to the readdirCache in fs/gofer.

Since the upper filesystem does not have to allow caching readdir
entries, the new CacheReaddir MountSourceOperations method controls this
behavior.

This caching should be trivially movable to all Inodes if desired,
though that adds an additional copy step for non-overlay Inodes.
(Overlay Inodes already do the extra copy).

PiperOrigin-RevId: 255477592
2019-06-27 14:24:03 -07:00
..
arch Update canonical repository. 2019-06-13 16:50:15 -07:00
context Preallocate auth.NewAnonymousCredentials() in contexttest.TestContext. 2019-06-20 13:36:14 -07:00
control Allow to change logging options using 'runsc debug' 2019-06-24 15:03:02 -07:00
device Update canonical repository. 2019-06-13 16:50:15 -07:00
fs Cache directory entries in the overlay 2019-06-27 14:24:03 -07:00
hostcpu Update canonical repository. 2019-06-13 16:50:15 -07:00
hostmm Update canonical repository. 2019-06-13 16:50:15 -07:00
inet Update canonical repository. 2019-06-13 16:50:15 -07:00
kernel gvisor: lockless read access for task credentials 2019-06-25 09:52:49 -07:00
limits Update canonical repository. 2019-06-13 16:50:15 -07:00
loader Plumb context through more layers of filesytem. 2019-06-13 18:40:38 -07:00
memmap Update canonical repository. 2019-06-13 16:50:15 -07:00
mm Implement madvise(MADV_DONTFORK) 2019-06-20 12:56:00 -07:00
pgalloc Update canonical repository. 2019-06-13 16:50:15 -07:00
platform gvisor/ptrace: grub initial thread registers only once 2019-06-27 13:59:57 -07:00
safemem Update canonical repository. 2019-06-13 16:50:15 -07:00
sighandling Update canonical repository. 2019-06-13 16:50:15 -07:00
socket gvisor/fs: don't update file.offset for sockets, pipes, etc 2019-06-18 01:43:29 -07:00
state Update canonical repository. 2019-06-13 16:50:15 -07:00
strace Update canonical repository. 2019-06-13 16:50:15 -07:00
syscalls Follow symlinks when creating a file, and create the target. 2019-06-26 11:49:20 -07:00
time Update canonical repository. 2019-06-13 16:50:15 -07:00
unimpl Update canonical repository. 2019-06-13 16:50:15 -07:00
uniqueid Update canonical repository. 2019-06-13 16:50:15 -07:00
usage Update canonical repository. 2019-06-13 16:50:15 -07:00
usermem Update canonical repository. 2019-06-13 16:50:15 -07:00
watchdog Add list of stuck tasks to panic message 2019-06-21 12:46:53 -07:00
BUILD Remove license comments 2019-01-31 11:12:53 -08:00