rem: while (true) { if ((status = inode->InitCheck()) == B_OK) {  *_node = (void *)inode; return B_OK;
add: restartIfBusy: status_t status = node->InitCheck(volume);  if (status == B_BUSY) { inode = (Inode *)node->etc;        if (tries++ < 200) {  snooze(5000); goto restartIfBusy;
context: bfs_read_vnode(void *_ns, vnode_id id, char reenter, void **_node){	FUNCTION_START(("vnode_id = %Ld\n", id));	Volume *volume = (Volume *)_ns;	if (id < 0 || id > volume->NumBlocks()) {		FATAL(("inode at %Ld requested!\n", id));		return B_ERROR;	}	Inode *inode = new Inode(volume, id, false, reenter);	if (inode == NULL)		return B_NO_MEMORY;	status_t status;	int32 tries = 0;	while (true) {		if ((status = inode->InitCheck()) == B_OK) {			// the inode is okay and ready to be used			*_node = (void *)inode;			return B_OK;		}		// if "status" is B_BUSY, we wait a bit and try again		if (status == B_BUSY) {			// wait for one second at maximum			if (tries++ < 200) {				snooze(5000);				continue;			}			FATAL(("inode is not becoming unbusy (id = %Ld)\n", id));		}		break;	}	delete inode;	RETURN_ERROR(status);}