summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 15:34:17 +0200
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 15:34:17 +0200
commit5528f911b4c43a5de5da34bcbd7e3f2a62503617 (patch)
tree2c888b1dc0b3743855d795a1a02730637d6ba0aa /include
parentVFS: Unexport do_kern_mount() and clean up simple_pin_fs() (diff)
downloadlinux-5528f911b4c43a5de5da34bcbd7e3f2a62503617.tar.xz
linux-5528f911b4c43a5de5da34bcbd7e3f2a62503617.zip
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')
-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 @@
#define MNT_NOATIME 0x08
#define MNT_NODIRATIME 0x10
+#define MNT_SHRINKABLE 0x100
+
#define MNT_SHARED 0x1000 /* if the vfsmount is a shared mount */
#define MNT_UNBINDABLE 0x2000 /* if the vfsmount is a unbindable mount */
#define MNT_PNODE_MASK 0x3000 /* propogation flag mask */
@@ -84,6 +86,7 @@ extern int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd,
int mnt_flags, struct list_head *fslist);
extern void mark_mounts_for_expiry(struct list_head *mounts);
+extern void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts);
extern spinlock_t vfsmount_lock;
extern dev_t name_to_dev_t(char *name);