]> Git Repo - linux.git/commit - fs/fuse/dev.c
fuse: fix blocked_waitq wakeup
authorMiklos Szeredi <[email protected]>
Fri, 28 Sep 2018 14:43:22 +0000 (16:43 +0200)
committerMiklos Szeredi <[email protected]>
Fri, 28 Sep 2018 14:43:22 +0000 (16:43 +0200)
commit908a572b80f6e9577b45e81b3dfe2e22111286b8
tree9752e255244d3e6314f471fdc15f4491c1dc8939
parent4c316f2f3ff315cb48efb7435621e5bfb81df96d
fuse: fix blocked_waitq wakeup

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 <[email protected]>
Fixes: 3c18ef8117f0 ("fuse: optimize wake_up")
Cc: <[email protected]> # v3.10
fs/fuse/dev.c
This page took 0.051786 seconds and 4 git commands to generate.