rem: TRACE(("read_next_module_name: looking for next module\n"));  status = iterator->err;
add: if (iterator->status < B_OK) return iterator->status;  status = iterator->status;
context: read_next_module_name(void *cookie, char *buffer, size_t *_bufferSize){	module_iterator *iterator = (module_iterator *)cookie;	status_t status;	if (iterator == NULL || buffer == NULL || _bufferSize == NULL)		return B_BAD_VALUE;	TRACE(("read_next_module_name: looking for next module\n"));		status = iterator->err;	recursive_lock_lock(&gModulesLock);	while (status == B_OK) {		TRACE(("searching for module\n"));		if (iterator->cur_dir != NULL) {			if ((status = module_traverse_dir(iterator)) == B_NO_ERROR) {				// By this point we should have a valid pointer to a 				// module_info structure in iterator->current_header				status = process_module_info(iterator, buffer, _bufferSize);				if (status == B_OK)					break;			}		} else			status = module_enter_base_path(iterator);	}	iterator->err = status;	recursive_lock_unlock(&gModulesLock);	TRACE(("finished with status %s\n", strerror(status)));	return status;}