[PATCH] introduce shared mounts
[safe/jmp/linux-2.6] / fs / pnode.c
index aaa0dff..1e22165 100644 (file)
 #include <linux/fs.h>
 #include "pnode.h"
 
+/* return the next shared peer mount of @p */
+static inline struct vfsmount *next_peer(struct vfsmount *p)
+{
+       return list_entry(p->mnt_share.next, struct vfsmount, mnt_share);
+}
+
 void change_mnt_propagation(struct vfsmount *mnt, int type)
 {
-       mnt->mnt_flags &= ~MNT_PNODE_MASK;
+       if (type == MS_SHARED) {
+               mnt->mnt_flags |= MNT_SHARED;
+       } else {
+               list_del_init(&mnt->mnt_share);
+               mnt->mnt_flags &= ~MNT_PNODE_MASK;
+       }
 }