diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2008-12-20 20:58:38 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-01-07 21:40:27 +0100 |
commit | 55ef1274dddd4de387c54d110e354ffbb6cdc706 (patch) | |
tree | 27d67f6c6929a55239a18d532850807aeaf1b6c4 /fs/lockd/svc.c | |
parent | SUNRPC: Ensure the server closes sockets in a timely fashion (diff) | |
download | linux-55ef1274dddd4de387c54d110e354ffbb6cdc706.tar.xz linux-55ef1274dddd4de387c54d110e354ffbb6cdc706.zip |
nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT
Since nfsv4 allows LOCKT without an open, but the ->lock() method is a
file method, we fake up a struct file in the nfsv4 code with just the
fields we need initialized. But we forgot to initialize the file
operations, with the result that LOCKT never results in a call to the
filesystem's ->lock() method (if it exists).
We could just add that one more initialization. But this hack of faking
up a struct file with only some fields initialized seems the kind of
thing that might cause more problems in the future. We should either do
an open and get a real struct file, or make lock-testing an inode (not a
file) method.
This patch does the former.
Reported-by: Marc Eshel <eshel@almaden.ibm.com>
Tested-by: Marc Eshel <eshel@almaden.ibm.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/lockd/svc.c')
0 files changed, 0 insertions, 0 deletions