umount_tree(mnt, umounts); 
umount_tree(mnt, 1, umounts); 
static void expire_mount(struct vfsmount *mnt, struct list_head *mounts,				struct list_head *umounts){	spin_lock(&vfsmount_lock);	/*	 * Check if mount is still attached, if not, let whoever holds it deal	 * with the sucker	 */	if (mnt->mnt_parent == mnt) {		spin_unlock(&vfsmount_lock);		return;	}	/*	 * Check that it is still dead: the count should now be 2 - as	 * contributed by the vfsmount parent and the mntget above	 */	if (atomic_read(&mnt->mnt_count) == 2) {		/* delete from the namespace */		touch_namespace(mnt->mnt_namespace);		list_del_init(&mnt->mnt_list);		mnt->mnt_namespace = NULL;		umount_tree(mnt, umounts);		spin_unlock(&vfsmount_lock);	} else {		/*		 * Someone brought it back to life whilst we didn't have any		 * locks held so return it to the expiration list		 */		list_add_tail(&mnt->mnt_expire, mounts);		spin_unlock(&vfsmount_lock);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a05964f3917c7c55368c229d7985f8e7c9977e97/namespace.c/clean/fs/namespace.c