Add buffer lock feature

use block->lock=1 to spin the block
readBlock() may return NULL which means no suffient space.