summaryrefslogtreecommitdiff
path: root/fs/fat
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-12-08 00:53:09 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2019-12-08 00:53:09 +0300
commit85190d15f4ea88e60047256fecb8216d5323ea47 (patch)
tree71f2a601e325fd5724e05b685675e7c7b749ebcf /fs/fat
parenta28c8b9db8a1014aa572cd19a3bdb9ddebd3e555 (diff)
downloadlinux-85190d15f4ea88e60047256fecb8216d5323ea47.tar.xz
pipe: don't use 'pipe_wait() for basic pipe IO
pipe_wait() may be simple, but since it relies on the pipe lock, it means that we have to do the wakeup while holding the lock. That's unfortunate, because the very first thing the waked entity will want to do is to get the pipe lock for itself. So get rid of the pipe_wait() usage by simply releasing the pipe lock, doing the wakeup (if required) and then using wait_event_interruptible() to wait on the right condition instead. wait_event_interruptible() handles races on its own by comparing the wakeup condition before and after adding itself to the wait queue, so you can use an optimistic unlocked condition for it. Cc: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fat')
0 files changed, 0 insertions, 0 deletions