if ((flag & CL_PROPAGATION) || IS_MNT_SHARED(old)) list_add(&mnt->mnt_share, &old->mnt_share); 
if (flag & CL_SLAVE) { list_add(&mnt->mnt_slave, &old->mnt_slave_list); mnt->mnt_master = old; CLEAR_MNT_SHARED(mnt); } else { if ((flag & CL_PROPAGATION) || IS_MNT_SHARED(old)) list_add(&mnt->mnt_share, &old->mnt_share); if (IS_MNT_SLAVE(old)) list_add(&mnt->mnt_slave, &old->mnt_slave); mnt->mnt_master = old->mnt_master; } 
static struct vfsmount *clone_mnt(struct vfsmount *old, struct dentry *root,					int flag){	struct super_block *sb = old->mnt_sb;	struct vfsmount *mnt = alloc_vfsmnt(old->mnt_devname);	if (mnt) {		mnt->mnt_flags = old->mnt_flags;		atomic_inc(&sb->s_active);		mnt->mnt_sb = sb;		mnt->mnt_root = dget(root);		mnt->mnt_mountpoint = mnt->mnt_root;		mnt->mnt_parent = mnt;		if ((flag & CL_PROPAGATION) || IS_MNT_SHARED(old))			list_add(&mnt->mnt_share, &old->mnt_share);		if (flag & CL_MAKE_SHARED)			set_mnt_shared(mnt);		/* stick the duplicate mount on the same expiry list		 * as the original if that was on one */		if (flag & CL_EXPIRE) {			spin_lock(&vfsmount_lock);			if (!list_empty(&old->mnt_expire))				list_add(&mnt->mnt_expire, &old->mnt_expire);			spin_unlock(&vfsmount_lock);		}	}	return mnt;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5afe00221389998a25d611dc7941c06580c29eb6/namespace.c/clean/fs/namespace.c