]> git.ipfire.org Git - thirdparty/linux.git/commit - fs/locks.c
locks: move checks from locks_free_lock() to locks_release_private()
authorNeilBrown <neilb@suse.com>
Wed, 24 Apr 2019 02:00:08 +0000 (12:00 +1000)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 24 Apr 2019 13:51:48 +0000 (09:51 -0400)
commit5926459e7c897ee348c134f44da520c8bf234b05
treed2134d1e9433de3caeac5dcf636c32580ae26c8d
parent0ca0c9d7edcf4996da3ebf07947c4484d1e3de16
locks: move checks from locks_free_lock() to locks_release_private()

Code that allocates locks using locks_alloc_lock() will free it
using locks_free_lock(), and will benefit from the BUG_ON()
consistency checks therein.

However some code (nfsd and lockd) allocate a lock embedded in
some other data structure, and so free the lock themselves after
calling locks_release_private().  This path does not benefit from
the consistency checks.

To help catch future errors, move the BUG_ON() checks to
locks_release_private() - which locks_free_lock() already calls.
This ensures that all users for locks will find out if the lock
isn't detached properly before being free.

Signed-off-by: NeilBrown <neilb@suse.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/locks.c