summary refs log tree commit diff
path: root/devices/src/virtio/fs/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'devices/src/virtio/fs/server.rs')
-rw-r--r--devices/src/virtio/fs/server.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/devices/src/virtio/fs/server.rs b/devices/src/virtio/fs/server.rs
index 1914c9b..9c3136d 100644
--- a/devices/src/virtio/fs/server.rs
+++ b/devices/src/virtio/fs/server.rs
@@ -835,7 +835,13 @@ impl<F: FileSystem + Sync> Server<F> {
 
         match self.fs.init(capable) {
             Ok(want) => {
-                let enabled = capable & (want | supported);
+                let mut enabled = capable & (want | supported);
+
+                // HANDLE_KILLPRIV doesn't work correctly when writeback caching is enabled so turn
+                // it off.
+                if enabled.contains(FsOptions::WRITEBACK_CACHE) {
+                    enabled.remove(FsOptions::HANDLE_KILLPRIV);
+                }
 
                 let out = InitOut {
                     major: KERNEL_VERSION,