diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2019-03-06 15:41:57 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-03-13 14:01:31 -0700 |
commit | 66ad3d56ab6246f20c4ff9c120731c890d015c65 (patch) | |
tree | b69b0e081b916e8e015f4efdf98cbdf35d7e9c3b /scripts/gdb/linux/proc.py | |
parent | 97e5d51f123aa1c954792867d0f44d58f9fdf827 (diff) |
gfs2: Fix missed wakeups in find_insert_glock
commit 605b0487f0bc1ae9963bf52ece0f5c8055186f81 upstream.
Mark Syms has reported seeing tasks that are stuck waiting in
find_insert_glock. It turns out that struct lm_lockname contains four padding
bytes on 64-bit architectures that function glock_waitqueue doesn't skip when
hashing the glock name. As a result, we can end up waking up the wrong
waitqueue, and the waiting tasks may be stuck forever.
Fix that by using ht_parms.key_len instead of sizeof(struct lm_lockname) for
the key length.
Reported-by: Mark Syms <mark.syms@citrix.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/gdb/linux/proc.py')
0 files changed, 0 insertions, 0 deletions