lockd: call locks_release_private to cleanup per-filesystem state
authorFelix Blyakher <felixb@sgi.com>
Tue, 31 Mar 2009 20:12:56 +0000 (15:12 -0500)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 24 Apr 2009 20:36:03 +0000 (16:36 -0400)
commita9e61e25f9d2e7e43bf17625f5cb56c9e0a89b17
tree1c000afc1e2eadb00570ae34666af508afa021fe
parent80492e7d49bee0a280a84a39075a7857b92836b2
lockd: call locks_release_private to cleanup per-filesystem state

For every lock request lockd creates a new file_lock object
in nlmsvc_setgrantargs() by copying the passed in file_lock with
locks_copy_lock(). A filesystem can attach it's own lock_operations
vector to the file_lock. It has to be cleaned up at the end of the
file_lock's life. However, lockd doesn't do it today, yet it
asserts in nlmclnt_release_lockargs() that the per-filesystem
state is clean.
This patch fixes it by exporting locks_release_private() and adding
it to nlmsvc_freegrantargs(), to be symmetrical to creating a
file_lock in nlmsvc_setgrantargs().

Signed-off-by: Felix Blyakher <felixb@sgi.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/lockd/svclock.c
fs/locks.c
include/linux/fs.h