diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2019-03-06 15:41:57 +0100 |
---|---|---|
committer | Andreas Gruenbacher <agruenba@redhat.com> | 2019-03-08 15:49:01 +0100 |
commit | 605b0487f0bc1ae9963bf52ece0f5c8055186f81 (patch) | |
tree | d6cdf2eb071b40386ca7b75573b377d3413e35a0 /include/uapi | |
parent | gfs2: Fix an incorrect gfs2_assert() (diff) | |
download | linux-605b0487f0bc1ae9963bf52ece0f5c8055186f81.tar.xz linux-605b0487f0bc1ae9963bf52ece0f5c8055186f81.zip |
gfs2: Fix missed wakeups in find_insert_glock
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>
Diffstat (limited to 'include/uapi')
0 files changed, 0 insertions, 0 deletions