rem: if (mount->root_vnode != v) {
add: if (mount->root_vnode != vnode) {
context: fs_unmount(char *path, bool kernel){	struct vnode *v;	struct fs_mount *mount;	int err;	FUNCTION(("vfs_unmount: entry. path = '%s', kernel %d\n", path, kernel));	err = path_to_vnode(path, &v, kernel);	if (err < 0) {		err = ERR_VFS_PATH_NOT_FOUND;		goto err;	}	mutex_lock(&vfs_mount_op_mutex);	mount = find_mount(v->fs_id);	if (!mount)		panic("vfs_unmount: fsid_to_mount failed on root vnode @%p of mount\n", v);	if (mount->root_vnode != v) {		// not mountpoint		dec_vnode_ref_count(v, false);		err = ERR_VFS_NOT_MOUNTPOINT;		goto err1;	}	/* grab the vnode master mutex to keep someone from creating a vnode	while we're figuring out if we can continue */	mutex_lock(&vfs_vnode_mutex);	/* simulate the root vnode having it's refcount decremented */	mount->root_vnode->ref_count -= 2;	/* cycle through the list of vnodes associated with this mount and	make sure all of them are not busy or have refs on them */	err = 0;	for (v = mount->vnodes_head; v; v = v->mount_next) {		if (v->busy || v->ref_count != 0) {			mount->root_vnode->ref_count += 2;			mutex_unlock(&vfs_vnode_mutex);			dec_vnode_ref_count(mount->root_vnode, false);			err = EBUSY;			goto err1;		}	}	/* we can safely continue, mark all of the vnodes busy and this mount	structure in unmounting state */	for (v = mount->vnodes_head; v; v = v->mount_next)		if (v != mount->root_vnode)			v->busy = true;	mount->unmounting = true;	mutex_unlock(&vfs_vnode_mutex);	mount->covers_vnode->covered_by = NULL;	dec_vnode_ref_count(mount->covers_vnode, false);	/* release the ref on the root vnode twice */	dec_vnode_ref_count(mount->root_vnode, false);	dec_vnode_ref_count(mount->root_vnode, false);	// XXX when full vnode cache in place, will need to force	// a putvnode/removevnode here	/* remove the mount structure from the hash table */	mutex_lock(&vfs_mount_mutex);	hash_remove(mounts_table, mount);	mutex_unlock(&vfs_mount_mutex);	mutex_unlock(&vfs_mount_op_mutex);	mount->fs->calls->fs_unmount(mount->cookie);	kfree(mount->mount_point);	kfree(mount);	return 0;err1:	mutex_unlock(&vfs_mount_op_mutex);err:	return err;}