aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 09:34:17 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 09:34:17 -0400
commit5528f911b4c43a5de5da34bcbd7e3f2a62503617 (patch)
tree2c888b1dc0b3743855d795a1a02730637d6ba0aa /include/linux
parent1f5ce9e93aa96a867f195ed45f6f77935175f12e (diff)
VFS: Add shrink_submounts()
Allow a submount to be marked as being 'shrinkable' by means of the vfsmount->mnt_flags, and then add a function 'shrink_submounts()' which attempts to recursively unmount these submounts. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mount.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/mount.h b/include/linux/mount.h
index aff68c3660f5..9b4e0071b92e 100644
--- a/include/linux/mount.h
+++ b/include/linux/mount.h
@@ -23,6 +23,8 @@
23#define MNT_NOATIME 0x08 23#define MNT_NOATIME 0x08
24#define MNT_NODIRATIME 0x10 24#define MNT_NODIRATIME 0x10
25 25
26#define MNT_SHRINKABLE 0x100
27
26#define MNT_SHARED 0x1000 /* if the vfsmount is a shared mount */ 28#define MNT_SHARED 0x1000 /* if the vfsmount is a shared mount */
27#define MNT_UNBINDABLE 0x2000 /* if the vfsmount is a unbindable mount */ 29#define MNT_UNBINDABLE 0x2000 /* if the vfsmount is a unbindable mount */
28#define MNT_PNODE_MASK 0x3000 /* propogation flag mask */ 30#define MNT_PNODE_MASK 0x3000 /* propogation flag mask */
@@ -84,6 +86,7 @@ extern int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd,
84 int mnt_flags, struct list_head *fslist); 86 int mnt_flags, struct list_head *fslist);
85 87
86extern void mark_mounts_for_expiry(struct list_head *mounts); 88extern void mark_mounts_for_expiry(struct list_head *mounts);
89extern void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts);
87 90
88extern spinlock_t vfsmount_lock; 91extern spinlock_t vfsmount_lock;
89extern dev_t name_to_dev_t(char *name); 92extern dev_t name_to_dev_t(char *name);