int type = CL_PROPAGATION; 
int type; struct vfsmount *source; 
int propagate_mnt(struct vfsmount *dest_mnt, struct dentry *dest_dentry,		    struct vfsmount *source_mnt, struct list_head *tree_list){	struct vfsmount *m, *child;	int ret = 0;	struct vfsmount *prev_dest_mnt = dest_mnt;	struct vfsmount *prev_src_mnt  = source_mnt;	LIST_HEAD(tmp_list);	LIST_HEAD(umount_list);	for (m = propagation_next(dest_mnt, dest_mnt); m;			m = propagation_next(m, dest_mnt)) {		int type = CL_PROPAGATION;		if (IS_MNT_NEW(m))			continue;		if (IS_MNT_SHARED(m))			type |= CL_MAKE_SHARED;		if (!(child = copy_tree(source_mnt, source_mnt->mnt_root,						type))) {			ret = -ENOMEM;			list_splice(tree_list, tmp_list.prev);			goto out;		}		if (is_subdir(dest_dentry, m->mnt_root)) {			mnt_set_mountpoint(m, dest_dentry, child);			list_add_tail(&child->mnt_hash, tree_list);		} else {			/*			 * This can happen if the parent mount was bind mounted			 * on some subdirectory of a shared/slave mount.			 */			list_add_tail(&child->mnt_hash, &tmp_list);		}		prev_dest_mnt = m;		prev_src_mnt  = child;	}out:	spin_lock(&vfsmount_lock);	while (!list_empty(&tmp_list)) {		child = list_entry(tmp_list.next, struct vfsmount, mnt_hash);		list_del_init(&child->mnt_hash);		umount_tree(child, 0, &umount_list);	}	spin_unlock(&vfsmount_lock);	release_mounts(&umount_list);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5afe00221389998a25d611dc7941c06580c29eb6/pnode.c/buggy/fs/pnode.c