linux/fs/fuse
Tahsin Erdogan a8a86d78d6 fuse: clear FR_PENDING flag when moving requests out of pending queue
fuse_abort_conn() moves requests from pending list to a temporary list
before canceling them. This operation races with request_wait_answer()
which also tries to remove the request after it gets a fatal signal. It
checks FR_PENDING flag to determine whether the request is still in the
pending list.

Make fuse_abort_conn() clear FR_PENDING flag so that request_wait_answer()
does not remove the request from temporary list.

This bug causes an Oops when trying to delete an already deleted list entry
in end_requests().

Fixes: ee314a870e ("fuse: abort: no fc->lock needed for request ending")
Signed-off-by: Tahsin Erdogan <tahsin@google.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Cc: <stable@vger.kernel.org> # 4.2+
2017-01-13 12:03:47 +01:00
..
acl.c fuse: Add posix ACL support 2016-10-01 07:32:32 +02:00
control.c fs: Replace CURRENT_TIME with current_time() for inode timestamps 2016-09-27 21:06:21 -04:00
cuse.c fuse: Add reference counting for fuse_io_priv 2016-03-14 15:02:51 +01:00
dev.c fuse: clear FR_PENDING flag when moving requests out of pending queue 2017-01-13 12:03:47 +01:00
dir.c Merge uncontroversial parts of branch 'readlink' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs 2016-12-17 19:16:12 -08:00
file.c fuse: fix fuse_write_end() if zero bytes were copied 2016-11-15 12:34:21 +01:00
fuse_i.h fuse: fix root dentry initialization 2016-10-18 15:36:48 +02:00
inode.c fuse: fix root dentry initialization 2016-10-18 15:36:48 +02:00
Kconfig fuse: Add posix ACL support 2016-10-01 07:32:32 +02:00
Makefile fuse: Use generic xattr ops 2016-10-01 07:32:32 +02:00
xattr.c fuse: limit xattr returned size 2016-10-03 11:06:05 +02:00