Subject: bug#43062: --expose in vm does not reflect file modifications in guest

From: Ludovic Courtès <[email-masked]>
Date: Fri, 28 Aug 2020 16:11:26 +0200

Hi,

elaexuotee--- via Bug reports for GNU Guix <[email-masked]> skribis:

> When using --expose to mirror a path between host and guest, the guest mirror
> fails to reflect file modifications from the host. However, file creation and
> deletion are correctly propogated.
>
> To pick up file modifications in the guest, it is sufficient to remount
> mirroring 9p filesystem.
>
> Is this behaviour expected?

I believe this comes from the “cache=loose” 9p mount option added in
commit e0d96774dd48c29ccc4c90fea1f8f71850ab0879.

Does the patch below help?

Chris, what do you think?  How would this affect the performance issues
that led to e0d96774dd48c29ccc4c90fea1f8f71850ab0879?

Thanks,
Ludo’.

diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 861f2a427a..80a8618729 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -699,7 +699,8 @@ of the GNU system as described by OS."
        (device (file-system->mount-tag source))
        (type "9p")
        (flags (if writable? '() '(read-only)))
-       (options "trans=virtio,cache=loose")
+       (options (string-append "trans=virtio"
+                               (if writable? "" ",cache=loose")))
        (check? #f)
        (create-mount-point? #t)))))