rem: if(v->name == NULL) { err = ERR_NO_MEMORY;
add: if (v->name == NULL) { err = ENOMEM;
context: rootfs_mount(fs_cookie *_fs, fs_id id, const char *device, void *args, vnode_id *root_vnid){	struct rootfs *fs;	struct rootfs_vnode *v;	int err;	TRACE(("rootfs_mount: entry\n"));	fs = kmalloc(sizeof(struct rootfs));	if(fs == NULL) {		err = ERR_NO_MEMORY;		goto err;	}	fs->id = id;	fs->next_vnode_id = 0;	err = mutex_init(&fs->lock, "rootfs_mutex");	if(err < 0) {		goto err1;	}	fs->vnode_list_hash = hash_init(ROOTFS_HASH_SIZE, (addr)&v->all_next - (addr)v,		&rootfs_vnode_compare_func, &rootfs_vnode_hash_func);	if(fs->vnode_list_hash == NULL) {		err = ERR_NO_MEMORY;		goto err2;	}	// create a vnode	v = rootfs_create_vnode(fs);	if(v == NULL) {		err = ERR_NO_MEMORY;		goto err3;	}	// set it up	v->parent = v;	v->name = kstrdup("");	if(v->name == NULL) {		err = ERR_NO_MEMORY;		goto err4;	}	v->stream.dir.dir_head = NULL;	fs->root_vnode = v;	hash_insert(fs->vnode_list_hash, v);	*root_vnid = v->id;	*_fs = fs;	return 0;err4:	rootfs_delete_vnode(fs, v, true);err3:	hash_uninit(fs->vnode_list_hash);err2:	mutex_destroy(&fs->lock);err1:	kfree(fs);err:	return err;}