@Override
    public FSDataOutputStream call() throws IOException {
      try {
        FileSystem fs = CommonFSUtils.getCurrentFileSystem(this.conf);
        FsPermission defaultPerms =
          CommonFSUtils.getFilePermissions(fs, this.conf, HConstants.DATA_FILE_UMASK_KEY);
        Path tmpDir = getTmpDir(conf);
        this.hbckLockPath = new Path(tmpDir, HBCK_LOCK_FILE);
        fs.mkdirs(tmpDir);
        final FSDataOutputStream out = createFileWithRetries(fs, this.hbckLockPath, defaultPerms);
        out.writeBytes(InetAddress.getLocalHost().toString());
        // Add a note into the file we write on why hbase2 is writing out an hbck1 lock file.
        out.writeBytes(" Written by an hbase-2.x Master to block an "
          + "attempt by an hbase-1.x HBCK tool making modification to state. "
          + "See 'HBCK must match HBase server version' in the hbase refguide.");
        out.flush();
        return out;
      } catch (RemoteException e) {
        if (AlreadyBeingCreatedException.class.getName().equals(e.getClassName())) {
          return null;
        } else {
          throw e;
        }
      }
    }
Returns Will be <code>null</code> unless you call {@link #call()}
hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java