Lines Matching refs:m
41 struct mount *m = mnt; in get_peer_under_root() local
45 if (m->mnt_ns == ns && is_path_reachable(m, m->mnt.mnt_root, root)) in get_peer_under_root()
46 return m; in get_peer_under_root()
48 m = next_peer(m); in get_peer_under_root()
49 } while (m != mnt); in get_peer_under_root()
62 struct mount *m; in get_dominating_id() local
64 for (m = mnt->mnt_master; m != NULL; m = m->mnt_master) { in get_dominating_id()
65 struct mount *d = get_peer_under_root(m, mnt->mnt_ns, root); in get_dominating_id()
94 struct mount *m; in do_make_slave() local
100 for (m = master = next_peer(mnt); m != mnt; m = next_peer(m)) { in do_make_slave()
101 if (m->mnt.mnt_root == mnt->mnt.mnt_root) { in do_make_slave()
102 master = m; in do_make_slave()
149 static struct mount *propagation_next(struct mount *m, in propagation_next() argument
153 if (!IS_MNT_NEW(m) && !list_empty(&m->mnt_slave_list)) in propagation_next()
154 return first_slave(m); in propagation_next()
157 struct mount *master = m->mnt_master; in propagation_next()
160 struct mount *next = next_peer(m); in propagation_next()
162 } else if (m->mnt_slave.next != &master->mnt_slave_list) in propagation_next()
163 return next_slave(m); in propagation_next()
166 m = master; in propagation_next()
170 static struct mount *skip_propagation_subtree(struct mount *m, in skip_propagation_subtree() argument
177 if (!IS_MNT_NEW(m) && !list_empty(&m->mnt_slave_list)) in skip_propagation_subtree()
178 m = last_slave(m); in skip_propagation_subtree()
180 return m; in skip_propagation_subtree()
183 static struct mount *next_group(struct mount *m, struct mount *origin) in next_group() argument
188 if (!IS_MNT_NEW(m) && !list_empty(&m->mnt_slave_list)) in next_group()
189 return first_slave(m); in next_group()
190 next = next_peer(m); in next_group()
191 if (m->mnt_group_id == origin->mnt_group_id) { in next_group()
194 } else if (m->mnt_slave.next != &next->mnt_slave) in next_group()
196 m = next; in next_group()
200 struct mount *master = m->mnt_master; in next_group()
201 if (m->mnt_slave.next != &master->mnt_slave_list) in next_group()
202 return next_slave(m); in next_group()
203 m = next_peer(master); in next_group()
206 if (master->mnt_slave.next == &m->mnt_slave) in next_group()
208 m = master; in next_group()
210 if (m == origin) in next_group()
225 static int propagate_one(struct mount *m) in propagate_one() argument
230 if (IS_MNT_NEW(m)) in propagate_one()
233 if (!is_subdir(mp->m_dentry, m->mnt.mnt_root)) in propagate_one()
235 if (peers(m, last_dest)) { in propagate_one()
240 for (n = m; ; n = p) { in propagate_one()
257 if (IS_MNT_SHARED(m)) in propagate_one()
264 mnt_set_mountpoint(m, mp, child); in propagate_one()
265 last_dest = m; in propagate_one()
267 if (m->mnt_master != dest_master) { in propagate_one()
269 SET_MNT_MARK(m->mnt_master); in propagate_one()
273 return count_mounts(m->mnt_ns, child); in propagate_one()
292 struct mount *m, *n; in propagate_mnt() local
315 for (m = next_group(dest_mnt, dest_mnt); m; in propagate_mnt()
316 m = next_group(m, dest_mnt)) { in propagate_mnt()
318 n = m; in propagate_mnt()
324 } while (n != m); in propagate_mnt()
329 m = n->mnt_parent; in propagate_mnt()
330 if (m->mnt_master != dest_mnt->mnt_master) in propagate_mnt()
331 CLEAR_MNT_MARK(m->mnt_master); in propagate_mnt()
372 struct mount *m, *child, *topper; in propagate_mount_busy() local
386 for (m = propagation_next(parent, parent); m; in propagate_mount_busy()
387 m = propagation_next(m, parent)) { in propagate_mount_busy()
389 child = __lookup_mnt(&m->mnt, mnt->mnt_mountpoint); in propagate_mount_busy()
416 struct mount *m, *child; in propagate_mount_unlock() local
420 for (m = propagation_next(parent, parent); m; in propagate_mount_unlock()
421 m = propagation_next(m, parent)) { in propagate_mount_unlock()
422 child = __lookup_mnt(&m->mnt, mnt->mnt_mountpoint); in propagate_mount_unlock()
546 struct mount *m; in propagate_umount() local
558 for (m = propagation_next(parent, parent); m; in propagate_umount()
559 m = propagation_next(m, parent)) { in propagate_umount()
560 struct mount *child = __lookup_mnt(&m->mnt, in propagate_umount()
573 m = skip_propagation_subtree(m, parent); in propagate_umount()
608 struct mount *p = mnt, *m; in propagate_remount() local
615 m = __lookup_mnt(&p->mnt, mnt->mnt_mountpoint); in propagate_remount()
616 if (m) in propagate_remount()
617 sb->s_op->copy_mnt_data(m->mnt.data, mnt->mnt.data); in propagate_remount()