• Jeff Layton's avatar
    nfsd: clean up races in lock stateid searching and creation · 356a95ec
    Jeff Layton authored
    Preparation for removal of the client_mutex.
    
    Currently, no lock aside from the client_mutex is held when calling
    find_lock_state. Ensure that the cl_lock is held by adding a lockdep
    assertion.
    
    Once we remove the client_mutex, it'll be possible for another thread to
    race in and insert a lock state for the same file after we search but
    before we insert a new one. Ensure that doesn't happen by redoing the
    search after allocating a new stid that we plan to insert. If one is
    found just put the one that was allocated.
    Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    356a95ec
nfs4state.c 150 KB