• Chuck Lever's avatar
    NSM: Release nsmhandle in nlm_destroy_host · c8c23c42
    Chuck Lever authored
    The nsm_handle's reference count is bumped in nlm_lookup_host().  It
    should be decremented in nlm_destroy_host() to make it easier to see
    the balance of these two operations.
    
    Move the nsm_release() call to fs/lockd/host.c.
    
    The h_nsmhandle pointer is set in nlm_lookup_host(), and never cleared.
    The nlm_destroy_host() function is never called for the same nlm_host
    twice, so h_nsmhandle won't ever be NULL when nsm_unmonitor() is
    called.
    
    All references to the nlm_host are gone before it is freed.  We can
    skip making h_nsmhandle NULL just before the nlm_host is deallocated.
    
    It's also likely we can remove the h_nsmhandle NULL check in
    nlmsvc_is_client() as well, but we can do that later when rearchitect-
    ing the nlm_host cache.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    c8c23c42
lockd.h 11.5 KB