aboutsummaryrefslogtreecommitdiffstats
path: root/fs/pnode.c
diff options
context:
space:
mode:
authorRam Pai <linuxram@us.ibm.com>2005-11-07 17:19:33 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 21:18:10 -0500
commit03e06e68ff76294e53ffa898cb844d2a997b043e (patch)
treedf17444b2c9b89e1eed75e09d46ea36c40ebd1df /fs/pnode.c
parent07b20889e3052c7e77d6a6a54e7e83446eb1ba84 (diff)
[PATCH] introduce shared mounts
This creates shared mounts. A shared mount when bind-mounted to some mountpoint, propagates mount/umount events to each other. All the shared mounts that propagate events to each other belong to the same peer-group. Signed-off-by: Ram Pai <linuxram@us.ibm.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/pnode.c')
-rw-r--r--fs/pnode.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/pnode.c b/fs/pnode.c
index aaa0dffda12a..1e22165ea41f 100644
--- a/fs/pnode.c
+++ b/fs/pnode.c
@@ -11,7 +11,18 @@
11#include <linux/fs.h> 11#include <linux/fs.h>
12#include "pnode.h" 12#include "pnode.h"
13 13
14/* return the next shared peer mount of @p */
15static inline struct vfsmount *next_peer(struct vfsmount *p)
16{
17 return list_entry(p->mnt_share.next, struct vfsmount, mnt_share);
18}
19
14void change_mnt_propagation(struct vfsmount *mnt, int type) 20void change_mnt_propagation(struct vfsmount *mnt, int type)
15{ 21{
16 mnt->mnt_flags &= ~MNT_PNODE_MASK; 22 if (type == MS_SHARED) {
23 mnt->mnt_flags |= MNT_SHARED;
24 } else {
25 list_del_init(&mnt->mnt_share);
26 mnt->mnt_flags &= ~MNT_PNODE_MASK;
27 }
17} 28}