diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2019-11-25 20:48:46 +0100 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2019-11-27 09:33:49 +0100 |
commit | f1ebdeffc6f325e30e0ddb9f7a70f1370fa4b851 (patch) | |
tree | a8d7d385f2201a03c01e17b9e088c1dd21b8680e /fs/fuse/Kconfig | |
parent | virtiofs: Use completions while waiting for queue to be drained (diff) | |
download | linux-f1ebdeffc6f325e30e0ddb9f7a70f1370fa4b851.tar.xz linux-f1ebdeffc6f325e30e0ddb9f7a70f1370fa4b851.zip |
fuse: fix leak of fuse_io_priv
exit_aio() is sometimes stuck in wait_for_completion() after aio is issued
with direct IO and the task receives a signal.
The reason is failure to call ->ki_complete() due to a leaked reference to
fuse_io_priv. This happens in fuse_async_req_send() if
fuse_simple_background() returns an error (e.g. -EINTR).
In this case the error value is propagated via io->err, so return success
to not confuse callers.
This issue is tracked as a virtio-fs issue:
https://gitlab.com/virtio-fs/qemu/issues/14
Reported-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Fixes: 45ac96ed7c36 ("fuse: convert direct_io to simple api")
Cc: <stable@vger.kernel.org> # v5.4
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/fuse/Kconfig')
0 files changed, 0 insertions, 0 deletions