rem: nu_store = vm_store_create_anonymous_noswap();
add: nu_store = vm_store_create_anonymous_noswap((protection & B_STACK_AREA) != 0, USER_STACK_GUARD_PAGES);
context: map_backing_store(vm_address_space *aspace, vm_store *store, void **_virtualAddress,	off_t offset, addr_t size, uint32 addressSpec, int wiring, int protection,	int mapping, vm_area **_area, const char *areaName){	vm_cache *cache;	vm_cache_ref *cache_ref;	vm_area *area;	vm_cache *nu_cache;	vm_cache_ref *nu_cache_ref = NULL;	vm_store *nu_store;	int err;	TRACE(("map_backing_store: aspace %p, store %p, *vaddr %p, offset 0x%Lx, size %lu, addressSpec %ld, wiring %d, protection %d, _area %p, area_name '%s'\n",		aspace, store, *_virtualAddress, offset, size, addressSpec, wiring, protection, _area, areaName));	area = _vm_create_area_struct(aspace, areaName, wiring, protection);	if (area == NULL)		return B_NO_MEMORY;	cache = store->cache;	cache_ref = cache->ref;	// if this is a private map, we need to create a new cache & store object	// pair to handle the private copies of pages as they are written to	if (mapping == REGION_PRIVATE_MAP) {		// create an anonymous store object		nu_store = vm_store_create_anonymous_noswap();		if (nu_store == NULL)			panic("map_backing_store: vm_create_store_anonymous_noswap returned NULL");		nu_cache = vm_cache_create(nu_store);		if (nu_cache == NULL)			panic("map_backing_store: vm_cache_create returned NULL");		nu_cache_ref = vm_cache_ref_create(nu_cache);		if (nu_cache_ref == NULL)			panic("map_backing_store: vm_cache_ref_create returned NULL");		nu_cache->temporary = 1;		nu_cache->scan_skip = cache->scan_skip;		nu_cache->source = cache;		// grab a ref to the cache object we're now linked to as a source		vm_cache_acquire_ref(cache_ref, true);		cache = nu_cache;		cache_ref = cache->ref;		store = nu_store;		cache->virtual_size = offset + size;	}	err = vm_cache_set_minimal_commitment(cache_ref, offset + size);	if (err != B_OK)		goto err1a;	vm_cache_acquire_ref(cache_ref, true);	acquire_sem_etc(aspace->virtual_map.sem, WRITE_COUNT, 0, 0);	// check to see if this aspace has entered DELETE state	if (aspace->state == VM_ASPACE_STATE_DELETION) {		// okay, someone is trying to delete this aspace now, so we can't		// insert the area, so back out		err = ERR_VM_INVALID_ASPACE;		goto err1b;	}	err = insert_area(aspace, _virtualAddress, addressSpec, size, area);	if (err < B_OK)		goto err1b;	// attach the cache to the area	area->cache_ref = cache_ref;	area->cache_offset = offset;	// point the cache back to the area	vm_cache_insert_area(cache_ref, area);	// insert the area in the global area hash table	acquire_sem_etc(sAreaHashLock, WRITE_COUNT, 0 ,0);	hash_insert(sAreaHash, area);	release_sem_etc(sAreaHashLock, WRITE_COUNT, 0);	// grab a ref to the aspace (the area holds this)	atomic_add(&aspace->ref_count, 1);	release_sem_etc(aspace->virtual_map.sem, WRITE_COUNT, 0);	*_area = area;	return B_OK;err1b:	release_sem_etc(aspace->virtual_map.sem, WRITE_COUNT, 0);	vm_cache_release_ref(cache_ref);	goto err;err1a:	if (nu_cache_ref) {		// had never acquired it's initial ref, so acquire and then release it		// this should clean up all the objects it references		vm_cache_acquire_ref(cache_ref, true);		vm_cache_release_ref(cache_ref);	}err:	free(area->name);	free(area);	return err;}