linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* FUSE: write() after release()
@ 2018-09-15 22:35 Oleg Chernovskiy
  2018-09-17  7:13 ` Miklos Szeredi
  0 siblings, 1 reply; 3+ messages in thread
From: Oleg Chernovskiy @ 2018-09-15 22:35 UTC (permalink / raw)
  To: linux-fsdevel


[-- Attachment #1.1: Type: text/plain, Size: 872 bytes --]

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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-09-17 13:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-15 22:35 FUSE: write() after release() Oleg Chernovskiy
2018-09-17  7:13 ` Miklos Szeredi
     [not found]   ` <648A0C2F-7AB6-43D5-82DB-747B1C0E0F16@xaker.ru>
2018-09-17  7:39     ` Miklos Szeredi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).