• David Teigland's avatar
    dlm: adopt orphan locks · 2ab4bd8e
    David Teigland authored
    A process may exit, leaving an orphan lock in the lockspace.
    This adds the capability for another process to acquire the
    orphan lock.  Acquiring the orphan just moves the lock from
    the orphan list onto the acquiring process's list of locks.
    
    An adopting process must specify the resource name and mode
    of the lock it wants to adopt.  If a matching lock is found,
    the lock is moved to the caller's 's list of locks, and the
    lkid of the lock is returned like the lkid of a new lock.
    
    If an orphan with a different mode is found, then -EAGAIN is
    returned.  If no orphan lock is found on the resource, then
    -ENOENT is returned.  No async completion is used because
    the result is immediately available.
    
    Also, when orphans are purged, allow a zero nodeid to refer
    to the local nodeid so the caller does not need to look up
    the local nodeid.
    Signed-off-by: 's avatarDavid Teigland <teigland@redhat.com>
    2ab4bd8e