]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
locks: ensure vfs_test_lock() never returns FILE_LOCK_DEFERRED
authorNeilBrown <neil@brown.name>
Sat, 22 Nov 2025 01:00:37 +0000 (12:00 +1100)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Jan 2026 15:10:58 +0000 (10:10 -0500)
commit96f04d24fc961a600cc9d2c4b740acf273cfcd1e
tree44dae4e55094361ac2acf8b6b79ea688594c2a15
parent4329010ad9c36775e7092e451c37c24c4f90243f
locks: ensure vfs_test_lock() never returns FILE_LOCK_DEFERRED

FILE_LOCK_DEFERRED can be returned when creating or removing a lock, but
not when testing for a lock.  This support was explicitly removed in
Commit 09802fd2a8ca ("lockd: rip out deferred lock handling from testlock codepath")

However the test in nlmsvc_testlock() suggests that it *can* be returned,
only nlm cannot handle it.

To aid clarity, remove the test and instead put a similar test and
warning in vfs_test_lock().  If the impossible happens, convert
FILE_LOCK_DEFERRED to -EIO.

Signed-off-by: NeilBrown <neil@brown.name>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/lockd/svclock.c
fs/locks.c