code: private void closeBlockReader(BlockReader reader, boolean reuseConnection) 
        throws IOException {
      if (reader.hasSentStatusCode()) {
        Socket oldSock = reader.takeSocket();
        if (dfsClient.getDataTransferProtocolVersion() < 
            DataTransferProtocol.READ_REUSE_CONNECTION_VERSION ||
            !reuseConnection) {
            // close the sock for old datanode.
          if (oldSock != null) {
            IOUtils.closeSocket(oldSock);
          }
        } else {
          socketCache.put(oldSock);
        }
      }
      reader.close();
    }
docs: Close the given BlockReader and cache its socket.