freebsd-nq/sys/fs
Alan Somers 723c776829 fusefs: WIP making FUSE operations interruptible
The fuse protocol includes a FUSE_INTERRUPT operation that the client can
send to the server to indicate that it wants to abort an in-progress
operation.  It's required to interrupt any syscall that is blocking on a
fuse operation.

This commit adds basic FUSE_INTERRUPT support.  If a process receives any
signal while it's blocking on a FUSE operation, it will send a
FUSE_INTERRUPT and wait for the original operation to complete.  But there
is still much to do:

* The current code will leak memory if the server ignores FUSE_INTERRUPT,
  which many do.  It will also leak memory if the server completes the
  original operation before it receives the FUSE_INTERRUPT.
* An interrupted read(2) will incorrectly appear to be successful.
* fusefs should return immediately for fatal signals.
* Operations that haven't been sent to the server yet should be aborted
  without sending FUSE_INTERRUPT.
* Test coverage should be better.
* 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.

PR:		236530
Sponsored by:	The FreeBSD Foundation
2019-04-17 23:32:38 +00:00
..
autofs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cd9660 Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cuse Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
deadfs sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
devfs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
ext2fs Remove unneeded mount point unlock function calls. 2019-03-15 11:49:46 +00:00
fdescfs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
fifofs Rework pathconf handling for FIFOs. 2017-12-19 22:39:05 +00:00
fuse fusefs: WIP making FUSE operations interruptible 2019-04-17 23:32:38 +00:00
msdosfs msdosfs: zero tail of the last block on truncation for VREG vnodes as well. 2019-04-03 17:02:18 +00:00
nandfs Add _PC_ACL_* to vop_stdpathconf 2019-03-11 20:40:56 +00:00
nfs Drop unused 'p' argument to nfsv4_strtogid(). 2019-03-12 15:07:47 +00:00
nfsclient Drop unused 'p' argument to nfsv4_strtogid(). 2019-03-12 15:07:47 +00:00
nfsserver Drop unused 'p' argument to nfsv4_strtogid(). 2019-03-12 15:07:47 +00:00
nullfs nullfs: fix unmounts when filesystem is active. 2019-03-21 13:30:48 +00:00
procfs Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
pseudofs PFS: Bump NAMELEN and don't require clients to be sleepable 2019-02-20 20:55:02 +00:00
smbfs [smbfs] Allow semicolon in mounts that support long names 2019-01-20 05:52:16 +00:00
tmpfs tmpfs: plug holes on rw->ro mount update. 2019-04-02 13:59:04 +00:00
udf Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
unionfs sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00