|
From: | Hanna Reitz |
Subject: | Re: [PATCH v3 09/10] virtiofsd: Optionally fill lo_inode.fhandle |
Date: | Tue, 17 Aug 2021 10:27:16 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
On 16.08.21 21:44, Vivek Goyal wrote:
On Wed, Aug 11, 2021 at 08:41:18AM +0200, Hanna Reitz wrote: [..]But given the inotify complications, there’s really a good reason we should use mountinfo.It’s a bit tricky because our sandboxing prevents easy access to mountinfo, but if that’s the only way...yes. We already have lo->proc_self_fd. Maybe we need to keep /proc/self/mountinfo open in lo->proc_self_mountinfo. I am assuming that any mount table changes will still be visible despite the fact I have fd open (and don't have to open new fd to notice new mount/unmount changes).Well, yes, that was my idea. Unfortunately, I wasn’t quite successful yet; when I tried keeping the fd open, reading from it would just return 0 bytes. Perhaps that’s because we bind-mount /proc/self/fd to /proc so that nothing else in /proc is visible. Perhaps we need to bind-mount /proc/self/mountinfo into /proc/self/fd before that...Or perhaps open /proc/self/mountinfo and save fd in lo->proc_mountinfo before /proc/self/fd is bind mounted on /proc?Yes, I tried that, and then reading would just return 0 bytes.Hi Hanna, I tried this simple patch and I can read /proc/self/mountinfo before bind mounting /proc/self/fd and after bind mounting /proc/self/fd. Am I missing something.
Yes, but I tried reading it in the main loop (where we’d actually need it). It looks like the umount2(".", MNT_DETACH) in setup_mounts() breaks it.
Hanna
[Prev in Thread] | Current Thread | [Next in Thread] |