summary refs log tree commit diff
path: root/devices
diff options
context:
space:
mode:
authorChirantan Ekbote <chirantan@chromium.org>2020-03-17 17:52:02 +0900
committerCommit Bot <commit-bot@chromium.org>2020-03-19 08:13:30 +0000
commit93a987705782a882c9f1d05b8b472276c20ae50f (patch)
tree976ac67b17d1b5622f7f0ba6f9dbbd8da973bb89 /devices
parenta07d84ad6876197368ed23b641c2400a44809e69 (diff)
downloadcrosvm-93a987705782a882c9f1d05b8b472276c20ae50f.tar
crosvm-93a987705782a882c9f1d05b8b472276c20ae50f.tar.gz
crosvm-93a987705782a882c9f1d05b8b472276c20ae50f.tar.bz2
crosvm-93a987705782a882c9f1d05b8b472276c20ae50f.tar.lz
crosvm-93a987705782a882c9f1d05b8b472276c20ae50f.tar.xz
crosvm-93a987705782a882c9f1d05b8b472276c20ae50f.tar.zst
crosvm-93a987705782a882c9f1d05b8b472276c20ae50f.zip
devices: fs: Support FOPEN_CACHE_DIR
Add support for FOPEN_CACHE_DIR so that the guest can cache directory
entries for longer.

BUG=b:150264964
TEST=vm.Virtiofs

Change-Id: Iade67b54084ed72378afa70af9e9e0f7f0bc03e8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2105821
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Chirantan Ekbote <chirantan@chromium.org>
Diffstat (limited to 'devices')
-rw-r--r--devices/src/virtio/fs/passthrough.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/devices/src/virtio/fs/passthrough.rs b/devices/src/virtio/fs/passthrough.rs
index d23009b..aab1403 100644
--- a/devices/src/virtio/fs/passthrough.rs
+++ b/devices/src/virtio/fs/passthrough.rs
@@ -592,7 +592,13 @@ impl PassthroughFs {
                 OpenOptions::DIRECT_IO,
                 flags & (libc::O_DIRECTORY as u32) == 0,
             ),
-            CachePolicy::Always => opts |= OpenOptions::KEEP_CACHE,
+            CachePolicy::Always => {
+                opts |= if flags & (libc::O_DIRECTORY as u32) == 0 {
+                    OpenOptions::KEEP_CACHE
+                } else {
+                    OpenOptions::CACHE_DIR
+                }
+            }
             _ => {}
         };