FUSE: write() after release()

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

 



Hi,


I'm writing primarily because of the bug users are reporting

in my network-based filesystem [1]. In short, rsync first creates temporary file,

flushes and closes it and then immediately opens it again. The problem is,

sometimes I see that afterwards it tries to write to a closed fd resulting in IO error.


Is there a possibility that FUSE can execute fresh OPEN call before pending RELEASE

for the same inode that was processed?


I see OPEN calls are always sync in fuse_open_common but RELEASE seems to be

async as I see it goes to background queue in

fuse_release_common->fuse_file_put->fuse_request_send_background, can this be the reason?


Is there something that I'm missing? Maybe it's me implementing fs in wrong way?

How is this kind of behavior is corrected?


[1]: https://github.com/libfuse/libfuse/issues/295


Attachment: signature.asc
Description: OpenPGP digital signature


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

  Powered by Linux