• J
    locks: define a lm_setup handler for leases · 1c7dd2ff
    Jeff Layton 提交于
    ...and move the fasync setup into it for fcntl lease calls. At the same
    time, change the semantics of how the file_lock double-pointer is
    handled. Up until now, on a successful lease return you got a pointer to
    the lock on the list. This is bad, since that pointer can no longer be
    relied on as valid once the inode->i_lock has been released.
    
    Change the code to instead just zero out the pointer if the lease we
    passed in ended up being used. Then the callers can just check to see
    if it's NULL after the call and free it if it isn't.
    
    The priv argument has the same semantics. The lm_setup function can
    zero the pointer out to signal to the caller that it should not be
    freed after the function returns.
    Signed-off-by: NJeff Layton <jlayton@primarydata.com>
    Reviewed-by: NChristoph Hellwig <hch@lst.de>
    1c7dd2ff
nfs4state.c 166.0 KB