Re: passthrough question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hi Antonio,

I allowed myself to reply to this snip on-list because my answer is
relevant to the
wider audience.

On Fri, Apr 12, 2024 at 8:45 AM Antonio SJ Musumeci <trapexit@xxxxxxxxxx> wrote:
> On Wednesday, April 10th, 2024 at 9:28 AM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
> Not sure if that allows you to implement passthrough with mergerfs,
> but this is what the kernel implements.
> Now that I've looked at things more closely I've realized that the passthrough requirements are in conflict with some design assumptions I made in mergerfs. Not that I can't hack around them but certainly isn't as clean as I'd like. Going to need to put critical sections around open and release to ensure no concurrent opens of the same node.
> While considering different ways to take advantage of passthrough it dawned on me that it would have been nice if there was a fh value that was attached to a node on first lookup and could be freed after last forget.

That is roughly the plan for the next phase for getattr() passthrough:

Not fh value per-se but a backing id, allocated and attached to fuse inode
on LOOKUP reply, which sticks with this inode until evict/forget.
OPEN replies on this sort of inode would have to either explicitly state
FOPEN_PASSTHROUGH or we can allow the kernel to imply passthrough
mode open in this case. Not sure.

Sweet Tea said that he will be working on this new API, so now he has
another prospective user to test and to validate the design choices.


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux