]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fusefs: improvements to interruptibility
authorasomers <asomers@FreeBSD.org>
Thu, 18 Apr 2019 19:16:34 +0000 (19:16 +0000)
committerasomers <asomers@FreeBSD.org>
Thu, 18 Apr 2019 19:16:34 +0000 (19:16 +0000)
commit67204f05fbbf4dba95256edd799e6d6e63e59ed2
tree3944963e5dfd6201410d6987342b8573da7240d5
parentaf54acc057b97c5612c0b8315a317fcd46f29c83
fusefs: improvements to interruptibility

* If a process receives a fatal signal while blocked on a fuse operation,
  return ASAP without waiting for the operation to complete.  But still send
  the FUSE_INTERRUPT op to the daemon.
* Plug memory leaks from r346339

Interruptibility is now fully functional, but it could be better:
* Operations that haven't been sent to the server yet should be aborted
  without sending FUSE_INTERRUPT.
* It would be great if write operations could be made restartable.
  That would require delaying uiomove until the last possible moment, which
  would be sometime during fuse_device_read.
* It would be nice if we didn't have to guess which EAGAIN responses were
  for FUSE_INTERRUPT operations.

PR: 236530
Sponsored by: The FreeBSD Foundation
sys/fs/fuse/fuse_device.c
sys/fs/fuse/fuse_ipc.c
sys/fs/fuse/fuse_ipc.h
tests/sys/fs/fusefs/allow_other.cc
tests/sys/fs/fusefs/interrupt.cc
tests/sys/fs/fusefs/open.cc
tests/sys/fs/fusefs/utils.cc
tests/sys/fs/fusefs/utils.hh