• Jeff Layton's avatar
    NFSD: verify the opened dentry after setting a delegation · 876c553c
    Jeff Layton authored
    Between opening a file and setting a delegation on it, someone could
    rename or unlink the dentry. If this happens, we do not want to grant a
    delegation on the open.
    
    On a CLAIM_NULL open, we're opening by filename, and we may (in the
    non-create case) or may not (in the create case) be holding i_rwsem
    when attempting to set a delegation.  The latter case allows a
    race.
    
    After getting a lease, redo the lookup of the file being opened and
    validate that the resulting dentry matches the one in the open file
    description.
    
    To properly redo the lookup we need an rqst pointer to pass to
    nfsd_lookup_dentry(), so make sure that is available.
    Signed-off-by: default avatarJeff Layton <jlayton@kernel.org>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    876c553c
nfs4proc.c 97.5 KB