On Wed, Jun 09, 2021 at 05:55:42PM +0200, Max Reitz wrote:
> Hi,
>
> v1 cover letter for an overview:
> https://listman.redhat.com/archives/virtio-fs/2021-June/msg00033.html
Hi Max,
What's the impact of these patches on performance? Just trying to
get some idea what to expect. Performance remains more or less
same or we expect a hit.
Thanks
Vivek
>
> In v2, I (tried to) fix the bug Dave found, which is that
> get_file_handle() indiscriminately opened the given dirfd/name
> combination to get an O_RDONLY fd without checking whether we’re
> actually allowed to open dirfd/name; namely, we don’t allow ourselves to
> open files that aren’t regular files or directories.
>
> So that openat(.., O_RDONLY) is changed to an openat(..., O_PATH), and
> then check the file type with the statx() we’re doing anyway. If the
> file is OK to open, we reopen it O_RDONLY with the help of
> /proc/self/fd, like we always do.
>
> (This only affects patch 8.)
>
>
> git-backport-diff against v1:
>
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
>
> 001/9:[----] [--] 'virtiofsd: Add TempFd structure'
> 002/9:[----] [--] 'virtiofsd: Use lo_inode_open() instead of openat()'
> 003/9:[----] [--] 'virtiofsd: Add lo_inode_fd() helper'
> 004/9:[----] [--] 'virtiofsd: Let lo_fd() return a TempFd'
> 005/9:[----] [--] 'virtiofsd: Let lo_inode_open() return a TempFd'
> 006/9:[----] [--] 'virtiofsd: Add lo_inode.fhandle'
> 007/9:[----] [--] 'virtiofsd: Add inodes_by_handle hash table'
> 008/9:[0045] [FC] 'virtiofsd: Optionally fill lo_inode.fhandle'
> 009/9:[----] [--] 'virtiofsd: Add lazy lo_do_find()'
>
>
> Max Reitz (9):
> virtiofsd: Add TempFd structure
> virtiofsd: Use lo_inode_open() instead of openat()
> virtiofsd: Add lo_inode_fd() helper
> virtiofsd: Let lo_fd() return a TempFd
> virtiofsd: Let lo_inode_open() return a TempFd
> virtiofsd: Add lo_inode.fhandle
> virtiofsd: Add inodes_by_handle hash table
> virtiofsd: Optionally fill lo_inode.fhandle
> virtiofsd: Add lazy lo_do_find()
>
> tools/virtiofsd/helper.c | 3 +
> tools/virtiofsd/passthrough_ll.c | 836 +++++++++++++++++++++-----
> tools/virtiofsd/passthrough_seccomp.c | 2 +
> 3 files changed, 694 insertions(+), 147 deletions(-)
>
> --
> 2.31.1
>
>