]> git.baikalelectronics.ru Git - kernel.git/commit
lockd: Fix invalid lockowner cast after vfs_test_lock
authorBenjamin Coddington <bcodding@redhat.com>
Mon, 26 Jul 2021 13:33:28 +0000 (09:33 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Sep 2021 07:47:35 +0000 (09:47 +0200)
commit6c575d58a53377a8055b9bcb75cee1e4702477e1
treee51aeeb270bef5fa3561cf54d4562b4cccb5d807
parent6160b40adbe9a687fd78e25ffb4b6c3db2ef9478
lockd: Fix invalid lockowner cast after vfs_test_lock

[ Upstream commit cd2d644ddba183ec7b451b7c20d5c7cc06fcf0d7 ]

After calling vfs_test_lock() the pointer to a conflicting lock can be
returned, and that lock is not guarunteed to be owned by nlm.  In that
case, we cannot cast it to struct nlm_lockowner.  Instead return the pid
of that conflicting lock.

Fixes: 69d9f09b2a94 ("lockd: Show pid of lockd for remote locks")
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/lockd/svclock.c