[Virtio-fs] [RFC] Using hard links instead of lo_inode->fd
Dr. David Alan Gilbert
dgilbert at redhat.com
Mon Apr 12 17:54:52 UTC 2021
* Vivek Goyal (vgoyal at redhat.com) wrote:
> Hi All,
>
> Max has been trying to solve the problem of not having to keep an O_PATH
> fd open for every file (until inode goes away). Lot of inodes can get
> cached in guest inode cache and soon we can hit number of max fd limit.
>
> Today Christophe de Dinechin mentioned that can we maintain hardlinks
> for these files and open these hardlinks instead whenever we need
> lo_inode->fd.
>
> So say there is a notion of "workdir" which is passed to virtiofs where
> virtiofsd can create hardlinks. Once inode comes into existence, we
> create this link in workdir/<file-link>. Once last reference to inode
> is dropped, workdir/<file-link> is removed.
>
> Now any operation which needs the lo_inode->fd, can do operation on
> workdir/<file-link>.
>
> How does this proposal sound. What are the issues where. Some of the
> which came to surface during discussion with david gilbert are.
>
> 1. links can't be created for directories. So this will only help with
> regular files.
>
> 2. There might be a performance penalty. We don't know yet.
>
> 3. More overhead of managing workdir by the user/tools.
>
>
> Anything else? Is this a viable idea even if we can implement only
> for regular files.
The other one is that linkat(, AT_EMPTY_PATH) which can create the
link from the existing O_PATH we have, can only be used with
CAP_DAC_READ_SEARCH - which is a shame since otherwise it would seem to
make life easier.
Dave
> Thanks
> Vivek
--
Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK
More information about the Virtio-fs
mailing list