mount: Correctly return context.Canceled for interrupted syscalls

bazil/fuse expects us to return context.Canceled to signal that a
syscall was successfully interrupted. Returning a wrapped version of
that error however causes the fuse library to signal an EIO (input/output
error). Thus unwrap context.Canceled errors before returning them.
This commit is contained in:
Michael Eischer
2022-08-19 20:26:35 +02:00
parent f7808245aa
commit a0c1ae9f90
4 changed files with 27 additions and 5 deletions

View File

@@ -0,0 +1,11 @@
Bugfix: Improve handling of interrupted syscalls in `mount` command
Accessing restic's fuse mount could result in "input / output" errors when
using programs in which syscalls can be interrupted. This is for example the
case for go programs.
We have corrected the error handling for interrupted syscalls.
https://github.com/restic/restic/issues/3567
https://github.com/restic/restic/issues/3694
https://github.com/restic/restic/pull/3875