All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: virtio-fs@redhat.com, qemu-devel@nongnu.org, vgoyal@redhat.com
Subject: Re: [Virtio-fs] [PATCH] virtiofsd: Show submounts
Date: Thu, 30 Apr 2020 09:58:12 +0100	[thread overview]
Message-ID: <20200430085812.GC2874@work-vm> (raw)
In-Reply-To: <8c73f374-fcc8-1684-b581-84a9ab501aa9@redhat.com>

* Max Reitz (mreitz@redhat.com) wrote:
> On 29.04.20 16:57, Dr. David Alan Gilbert wrote:
> > * Dr. David Alan Gilbert (dgilbert@redhat.com) wrote:
> >> * Max Reitz (mreitz@redhat.com) wrote:
> >>> Currently, setup_mounts() bind-mounts the shared directory without
> >>> MS_REC.  This makes all submounts disappear.
> >>>
> >>> Pass MS_REC so that the guest can see submounts again.
> >>
> >> Thanks!
> >>
> >>> Fixes: 3ca8a2b1c83eb185c232a4e87abbb65495263756
> >>
> >> Should this actually be 5baa3b8e95064c2434bd9e2f312edd5e9ae275dc ?
> >>
> >>> Signed-off-by: Max Reitz <mreitz@redhat.com>
> >>> ---
> >>>  tools/virtiofsd/passthrough_ll.c | 2 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
> >>> index 4c35c95b25..9d7f863e66 100644
> >>> --- a/tools/virtiofsd/passthrough_ll.c
> >>> +++ b/tools/virtiofsd/passthrough_ll.c
> >>> @@ -2643,7 +2643,7 @@ static void setup_mounts(const char *source)
> >>>      int oldroot;
> >>>      int newroot;
> >>>  
> >>> -    if (mount(source, source, NULL, MS_BIND, NULL) < 0) {
> >>> +    if (mount(source, source, NULL, MS_BIND | MS_REC, NULL) < 0) {
> >>>          fuse_log(FUSE_LOG_ERR, "mount(%s, %s, MS_BIND): %m\n", source, source);
> >>>          exit(1);
> >>>      }
> >>
> >> Do we want MS_SLAVE to pick up future mounts that might happenf rom the
> >> host?
> >> What's the interaction between this and the MS_REC|MS_SLAVE that we have
> >> a few lines above for / ?
> > 
> > Just to confirm something from vgoyal, and what had confused me about
> > why we hadn't spotted this earlier.
> > 
> > Even without this patch, the SLAVE stuff worked so if you start the
> > daemon and *then* mount under the shared directory, the guest sees it
> > with or without this patch.
> 
> Hm, I don’t.  Do you really?

Yes! With your patch reverted:

Start virtiofsd, mount in the guest:

host:
# ./virtiofsd --socket-path=/tmp/vhostqemu -o source=/home/dgilbert/virtio-fs/fs  -o log_level=warn -o no_writeback

guest:
# mount -t virtiofs myfs /sysroot

host:
# findmnt -o +PROPAGATION -N 6100
TARGET SOURCE                                                              FSTYPE OPTIONS                                                      PROPAGATION
/      /dev/mapper/fedora_dgilbert--t580-root[/home/dgilbert/virtio-fs/fs] xfs    rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,no private,slave
# mount -t tmpfs /dev/null /home/dgilbert/virtio-fs/fs/tmp
# findmnt -o +PROPAGATION -N 6100
TARGET SOURCE                                                              FSTYPE OPTIONS                                                      PROPAGATION
/      /dev/mapper/fedora_dgilbert--t580-root[/home/dgilbert/virtio-fs/fs] xfs    rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,no private,slave
└─/tmp /dev/null                                                           tmpfs  rw,relatime,seclabel                                         private,slave
# touch /home/dgilbert/virtio-fs/fs/tmp/hello

guest:
# ls -l /sysroot/tmp
total 0
-rw-r--r-- 1 root root 0 Apr 30 08:50 hello

Maybe this is related to what Vivek said about default behaviours on
systemd's, what does:

# findmnt -o +PROPAGATION
TARGET    SOURCE         FSTYPE     OPTIONS                                                                                  PROPAGATION
/         /dev/mapper/fedora_dgilbert--t580-root
│                        xfs        rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota                        shared

say for your source= directory?

Dave

> Max
> 



--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


WARNING: multiple messages have this Message-ID (diff)
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: virtio-fs@redhat.com, Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-devel@nongnu.org, vgoyal@redhat.com
Subject: Re: [PATCH] virtiofsd: Show submounts
Date: Thu, 30 Apr 2020 09:58:12 +0100	[thread overview]
Message-ID: <20200430085812.GC2874@work-vm> (raw)
In-Reply-To: <8c73f374-fcc8-1684-b581-84a9ab501aa9@redhat.com>

* Max Reitz (mreitz@redhat.com) wrote:
> On 29.04.20 16:57, Dr. David Alan Gilbert wrote:
> > * Dr. David Alan Gilbert (dgilbert@redhat.com) wrote:
> >> * Max Reitz (mreitz@redhat.com) wrote:
> >>> Currently, setup_mounts() bind-mounts the shared directory without
> >>> MS_REC.  This makes all submounts disappear.
> >>>
> >>> Pass MS_REC so that the guest can see submounts again.
> >>
> >> Thanks!
> >>
> >>> Fixes: 3ca8a2b1c83eb185c232a4e87abbb65495263756
> >>
> >> Should this actually be 5baa3b8e95064c2434bd9e2f312edd5e9ae275dc ?
> >>
> >>> Signed-off-by: Max Reitz <mreitz@redhat.com>
> >>> ---
> >>>  tools/virtiofsd/passthrough_ll.c | 2 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
> >>> index 4c35c95b25..9d7f863e66 100644
> >>> --- a/tools/virtiofsd/passthrough_ll.c
> >>> +++ b/tools/virtiofsd/passthrough_ll.c
> >>> @@ -2643,7 +2643,7 @@ static void setup_mounts(const char *source)
> >>>      int oldroot;
> >>>      int newroot;
> >>>  
> >>> -    if (mount(source, source, NULL, MS_BIND, NULL) < 0) {
> >>> +    if (mount(source, source, NULL, MS_BIND | MS_REC, NULL) < 0) {
> >>>          fuse_log(FUSE_LOG_ERR, "mount(%s, %s, MS_BIND): %m\n", source, source);
> >>>          exit(1);
> >>>      }
> >>
> >> Do we want MS_SLAVE to pick up future mounts that might happenf rom the
> >> host?
> >> What's the interaction between this and the MS_REC|MS_SLAVE that we have
> >> a few lines above for / ?
> > 
> > Just to confirm something from vgoyal, and what had confused me about
> > why we hadn't spotted this earlier.
> > 
> > Even without this patch, the SLAVE stuff worked so if you start the
> > daemon and *then* mount under the shared directory, the guest sees it
> > with or without this patch.
> 
> Hm, I don’t.  Do you really?

Yes! With your patch reverted:

Start virtiofsd, mount in the guest:

host:
# ./virtiofsd --socket-path=/tmp/vhostqemu -o source=/home/dgilbert/virtio-fs/fs  -o log_level=warn -o no_writeback

guest:
# mount -t virtiofs myfs /sysroot

host:
# findmnt -o +PROPAGATION -N 6100
TARGET SOURCE                                                              FSTYPE OPTIONS                                                      PROPAGATION
/      /dev/mapper/fedora_dgilbert--t580-root[/home/dgilbert/virtio-fs/fs] xfs    rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,no private,slave
# mount -t tmpfs /dev/null /home/dgilbert/virtio-fs/fs/tmp
# findmnt -o +PROPAGATION -N 6100
TARGET SOURCE                                                              FSTYPE OPTIONS                                                      PROPAGATION
/      /dev/mapper/fedora_dgilbert--t580-root[/home/dgilbert/virtio-fs/fs] xfs    rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,no private,slave
└─/tmp /dev/null                                                           tmpfs  rw,relatime,seclabel                                         private,slave
# touch /home/dgilbert/virtio-fs/fs/tmp/hello

guest:
# ls -l /sysroot/tmp
total 0
-rw-r--r-- 1 root root 0 Apr 30 08:50 hello

Maybe this is related to what Vivek said about default behaviours on
systemd's, what does:

# findmnt -o +PROPAGATION
TARGET    SOURCE         FSTYPE     OPTIONS                                                                                  PROPAGATION
/         /dev/mapper/fedora_dgilbert--t580-root
│                        xfs        rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota                        shared

say for your source= directory?

Dave

> Max
> 



--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2020-04-30  8:58 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-24 13:35 [Virtio-fs] [PATCH] virtiofsd: Show submounts Max Reitz
2020-04-24 13:35 ` Max Reitz
2020-04-27 17:59 ` [Virtio-fs] " Dr. David Alan Gilbert
2020-04-27 17:59   ` Dr. David Alan Gilbert
2020-04-28  6:06   ` [Virtio-fs] " Max Reitz
2020-04-28  6:06     ` Max Reitz
2020-04-28  9:59     ` [Virtio-fs] " Dr. David Alan Gilbert
2020-04-28  9:59       ` Dr. David Alan Gilbert
2020-04-28 10:13       ` [Virtio-fs] " Max Reitz
2020-04-28 10:13         ` Max Reitz
2020-04-28 10:19         ` [Virtio-fs] " Dr. David Alan Gilbert
2020-04-28 10:19           ` Dr. David Alan Gilbert
2020-04-28  8:46   ` [Virtio-fs] " Daniel P. Berrangé
2020-04-28  8:46     ` Daniel P. Berrangé
2020-04-28 14:51   ` [Virtio-fs] " Stefan Hajnoczi
2020-04-28 14:51     ` Stefan Hajnoczi
2020-04-28 14:58     ` [Virtio-fs] " Daniel P. Berrangé
2020-04-28 14:58       ` Daniel P. Berrangé
2020-04-28 19:07     ` [Virtio-fs] " Miklos Szeredi
2020-04-28 19:07       ` Miklos Szeredi
2020-04-28 19:15       ` Dr. David Alan Gilbert
2020-04-28 19:15         ` Dr. David Alan Gilbert
2020-04-29  7:59         ` Miklos Szeredi
2020-04-29  7:59           ` Miklos Szeredi
2020-04-29  9:26           ` Miklos Szeredi
2020-04-29  9:26             ` Miklos Szeredi
2020-04-29 12:34             ` Vivek Goyal
2020-04-29 12:34               ` Vivek Goyal
2020-04-29 12:41               ` Vivek Goyal
2020-04-29 12:41                 ` Vivek Goyal
2020-04-29  8:31         ` Max Reitz
2020-04-29  8:31           ` Max Reitz
2020-04-29  8:52           ` Miklos Szeredi
2020-04-29  8:52             ` Miklos Szeredi
2020-04-29  9:31             ` Max Reitz
2020-04-29  9:31               ` Max Reitz
2020-04-29 14:57   ` Dr. David Alan Gilbert
2020-04-29 14:57     ` Dr. David Alan Gilbert
2020-04-29 15:35     ` [Virtio-fs] " Vivek Goyal
2020-04-29 15:35       ` Vivek Goyal
2020-04-30  8:06     ` [Virtio-fs] " Max Reitz
2020-04-30  8:06       ` Max Reitz
2020-04-30  8:58       ` Dr. David Alan Gilbert [this message]
2020-04-30  8:58         ` Dr. David Alan Gilbert
2020-04-30  9:21         ` [Virtio-fs] " Max Reitz
2020-04-30  9:21           ` Max Reitz
2020-04-30 11:38           ` [Virtio-fs] " Max Reitz
2020-04-30 11:38             ` Max Reitz
2020-04-30 13:56         ` [Virtio-fs] " Vivek Goyal
2020-04-30 13:56           ` Vivek Goyal
2020-04-30 14:20           ` [Virtio-fs] " Dr. David Alan Gilbert
2020-04-30 14:20             ` Dr. David Alan Gilbert
2020-04-30 14:24             ` [Virtio-fs] " Vivek Goyal
2020-04-30 14:24               ` Vivek Goyal
2020-04-30 14:34             ` [Virtio-fs] " Daniel P. Berrangé
2020-04-30 14:34               ` Daniel P. Berrangé
2020-04-30 14:41               ` [Virtio-fs] " Vivek Goyal
2020-04-30 14:41                 ` Vivek Goyal
2020-04-30 14:47                 ` [Virtio-fs] " Daniel P. Berrangé
2020-04-30 14:47                   ` Daniel P. Berrangé
2020-04-30 15:41                   ` [Virtio-fs] " Vivek Goyal
2020-04-30 15:41                     ` Vivek Goyal
2020-05-01 17:53 ` [Virtio-fs] " Dr. David Alan Gilbert
2020-05-01 17:53   ` Dr. David Alan Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200430085812.GC2874@work-vm \
    --to=dgilbert@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vgoyal@redhat.com \
    --cc=virtio-fs@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.