rem: error = B_ERROR;
add: error = B_IO_ERROR;
context: read_block(int fd, off_t offset, size_t size, uchar **block){	status_t error = (block && size > 0 ? B_OK : B_BAD_VALUE);	if (error == B_OK) {		*block = malloc(size);		if (*block) {			if (read_pos(fd, offset, *block, size) != (ssize_t)size) {				error = errno;				if (error == B_OK)					error = B_ERROR;				free(*block);				*block = NULL;			}		} else			error = B_NO_MEMORY;	}	return error;}