code: public LockedInodePath lockChild(Inode child, LockPattern lockPattern)
        throws InvalidPathException {
      return lockChild(child, lockPattern, addComponent(mPathComponents, child.getName()));
    }
docs: Returns a new locked inode path composed of the current path plus the child inode. The path is
  traversed according to the lock pattern. The original locked inode path is unaffected.
  
  childComponentsHint can be used to save the work of computing path components when the path
  components for the new path are already known.
  
  On failure, all locks taken by this method will be released.
  
  @param child the child inode
  @param lockPattern the lock pattern
  @return the new locked path