linux/fs/fuse
Miklos Szeredi bfc89804cb fuse: fix blocked_waitq wakeup
commit 908a572b80 upstream.

Using waitqueue_active() is racy.  Make sure we issue a wake_up()
unconditionally after storing into fc->blocked.  After that it's okay to
optimize with waitqueue_active() since the first wake up provides the
necessary barrier for all waiters, not the just the woken one.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Fixes: 3c18ef8117 ("fuse: optimize wake_up")
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-02-11 17:53:23 +00:00
..
control.c fuse: fix control dir setup and teardown 2018-11-20 18:05:06 +00:00
cuse.c fuse: flush requests on umount 2018-12-16 22:08:25 +00:00
dev.c fuse: fix blocked_waitq wakeup 2019-02-11 17:53:23 +00:00
dir.c fuse: atomic_o_trunc should truncate pagecache 2018-11-20 18:04:46 +00:00
file.c fuse: Add missed unlock_page() to fuse_readpages_fill() 2018-12-16 22:08:26 +00:00
fuse_i.h fuse: flush requests on umount 2018-12-16 22:08:25 +00:00
inode.c fuse: Fix oops at process_init_reply() 2018-12-16 22:08:26 +00:00
Kconfig fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig 2013-01-17 13:08:45 +01:00
Makefile CUSE: implement CUSE - Character device in Userspace 2009-06-09 11:24:11 +02:00