Re: [PATCH] fuse: Add open-gettr for fuse-file-open

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

 




On 8/21/24 16:28, Miklos Szeredi wrote:
> On Tue, 20 Aug 2024 at 23:18, Bernd Schubert <bschubert@xxxxxxx> wrote:
>>
>> This is to update attributes on open to achieve close-to-open
>> coherency even if an inode has a attribute cache timeout.
>>
>> Signed-off-by: Bernd Schubert <bschubert@xxxxxxx>
>>
>> ---
>> libfuse patch:
>> https://github.com/libfuse/libfuse/pull/1020
>> (FUSE_OPENDIR_GETATTR still missing at time of writing)
>>
>> Note: This does not make use of existing atomic-open patches
>> as these are more complex than two new opcodes for open-getattr.
> 
> The format of the requests would be very similar to the atomic open ones, right?

Atomic open patches are using fuse_open_out + fuse_entry_out

open-getattr is using fuse_open_out + attr_outarg

We could switch open-getattr to the atomic-open format, but then need to
introduce a flag to tell fuse-server that this is a plain atomic and
much simpler than atomic-open (atomic-open is also on the server side
rather complex).
For open-getattr we need don't need to revalidate the entry with all the
fields provided by fuse_entry_out.

Fine with me if you prefer a new struct to be used by atomic-open and
open-getattr with a flag and padding. Like

enum atomic_open_flags
{
     ATOMIC_OPEN_IS_OPEN_GETATTR = 1ULL < 0;
};

struct atomic_open
{
        uint64_t atomic_open_flags;
        struct fuse_open_out open_out;
        uint8_t future_padding1[16];
        struct fuse_entry_out entry_out;
        uint8_t future_padding2[16];
}


What do you think?


Thanks,
Bernd





[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