• J. Bruce Fields's avatar
    nfsd4: acquire only one lease per file · acfdf5c3
    J. Bruce Fields authored
    Instead of acquiring one lease each time another client opens a file,
    nfsd can acquire just one lease to represent all of them, and reference
    count it to determine when to release it.
    
    This fixes a regression introduced by
    c45821d2 "locks: eliminate fl_mylease
    callback": after that patch, only the struct file * is used to determine
    who owns a given lease.  But since we recently converted the server to
    share a single struct file per open, if we acquire multiple leases on
    the same file from nfsd, it then becomes impossible on unlocking a lease
    to determine which of those leases (all of whom share the same struct
    file *) we meant to remove.
    
    Thanks to Takashi Iwai <tiwai@suse.de> for catching a bug in a previous
    version of this patch.
    Tested-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    acfdf5c3
nfs4state.c 115 KB