Commit dd5a4e1d authored by Al Viro's avatar Al Viro
Browse files

change_mnt_propagation(): move ->mnt_master assignment into MS_SLAVE case



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8c5a853f
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -104,13 +104,14 @@ static void transfer_propagation(struct mount *mnt, struct mount *to)
 */
void change_mnt_propagation(struct mount *mnt, int type)
{
	struct mount *m = mnt->mnt_master;

	if (type == MS_SHARED) {
		set_mnt_shared(mnt);
		return;
	}
	if (IS_MNT_SHARED(mnt)) {
		struct mount *m = propagation_source(mnt);

		m = propagation_source(mnt);
		if (list_empty(&mnt->mnt_share)) {
			mnt_release_group_id(mnt);
		} else {
@@ -119,13 +120,12 @@ void change_mnt_propagation(struct mount *mnt, int type)
		}
		CLEAR_MNT_SHARED(mnt);
		transfer_propagation(mnt, m);
		mnt->mnt_master = m;
	}
	hlist_del_init(&mnt->mnt_slave);
	if (type == MS_SLAVE) {
		if (mnt->mnt_master)
			hlist_add_head(&mnt->mnt_slave,
				 &mnt->mnt_master->mnt_slave_list);
		mnt->mnt_master = m;
		if (m)
			hlist_add_head(&mnt->mnt_slave, &m->mnt_slave_list);
	} else {
		mnt->mnt_master = NULL;
		if (type == MS_UNBINDABLE)