filelock: WARN_ON_ONCE when ->fl_file and filp don't match
authorJeff Layton <jlayton@kernel.org>
Fri, 11 Nov 2022 11:46:52 +0000 (06:46 -0500)
committerJeff Layton <jlayton@kernel.org>
Thu, 17 Nov 2022 10:21:00 +0000 (05:21 -0500)
commit7e8e5cc818bd93ee7f2699676f2e5b30d26d83f8
tree4c3a450de593b4d4d5b2716b7283a4af76dff7f6
parent094226ad94f471a9f19e8f8e7140a09c2625abaa
filelock: WARN_ON_ONCE when ->fl_file and filp don't match

vfs_lock_file, vfs_test_lock and vfs_cancel_lock all take both a struct
file argument and a file_lock. The file_lock has a fl_file field in it
howevever and it _must_ match the file passed in.

While most of the locks.c routines use the separately-passed file
argument, some filesystems rely on fl_file being filled out correctly.

I'm working on a patch series to remove the redundant argument from
these routines, but for now, let's ensure that the callers always set
this properly by issuing a WARN_ON_ONCE if they ever don't match.

Cc: Chuck Lever <chuck.lever@oracle.com>
Cc: Trond Myklebust <trondmy@hammerspace.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
fs/locks.c