code: void assignToBlock(BlockId blk) {
  		internalLock.writeLock().lock();
  		try {
  			flush();
  			this.blk = blk;
  			contents.read(blk);
  			pins = 0;
  			lastLsn = LogSeqNum.readFromPage(contents, LAST_LSN_OFFSET);
  		} finally {
  			internalLock.writeLock().unlock();
  		}
  	}
docs: Reads the contents of the specified block into the buffer's page. If the
  buffer was dirty, then the contents of the previous page are first
  written to disk.
  
  @param blk
  a block ID