• J. Bruce Fields's avatar
    nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT · 55ef1274
    J. Bruce Fields authored
    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: default avatarMarc Eshel <eshel@almaden.ibm.com>
    Tested-by: default avatarMarc Eshel <eshel@almaden.ibm.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    55ef1274
nfs4state.c 87 KB