aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fs_pin.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-03-18 07:52:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2020-03-18 13:03:38 -0700
commitdcf23ac3e846ca0cf626c155a0e3fcbbcf4fae8a (patch)
treebcec3946a19e79751a97280bed14a633ad1a8ff8 /fs/fs_pin.c
parentmm: slub: be more careful about the double cmpxchg of freelist (diff)
downloadlinux-dev-dcf23ac3e846ca0cf626c155a0e3fcbbcf4fae8a.tar.xz
linux-dev-dcf23ac3e846ca0cf626c155a0e3fcbbcf4fae8a.zip
locks: reinstate locks_delete_block optimization
There is measurable performance impact in some synthetic tests due to commit 6d390e4b5d48 (locks: fix a potential use-after-free problem when wakeup a waiter). Fix the race condition instead by clearing the fl_blocker pointer after the wake_up, using explicit acquire/release semantics. This does mean that we can no longer use the clearing of fl_blocker as the wait condition, so switch the waiters over to checking whether the fl_blocked_member list_head is empty. Reviewed-by: yangerkun <yangerkun@huawei.com> Reviewed-by: NeilBrown <neilb@suse.de> Fixes: 6d390e4b5d48 (locks: fix a potential use-after-free problem when wakeup a waiter) Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fs_pin.c')
0 files changed, 0 insertions, 0 deletions