Blame view

include/linux/mount.h 2.34 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
  /*
   *
   * Definitions for mount interface. This describes the in the kernel build 
   * linkedlist with mounted filesystems.
   *
   * Author:  Marco van Wieringen <mvw@planets.elm.net>
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
8
9
10
   */
  #ifndef _LINUX_MOUNT_H
  #define _LINUX_MOUNT_H
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
11

d53d9f16e   Andrew Morton   [PATCH] name_to_d...
12
  #include <linux/types.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
13
  #include <linux/list.h>
3d733633a   Dave Hansen   [PATCH] r/o bind ...
14
  #include <linux/nodemask.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
15
  #include <linux/spinlock.h>
b3e19d924   Nick Piggin   fs: scale mntget/...
16
  #include <linux/seqlock.h>
60063497a   Arun Sharma   atomic: use <linu...
17
  #include <linux/atomic.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
18

726c33422   David Howells   [PATCH] VFS: Perm...
19
20
21
  struct super_block;
  struct vfsmount;
  struct dentry;
6b3286ed1   Kirill Korotaev   [PATCH] rename st...
22
  struct mnt_namespace;
726c33422   David Howells   [PATCH] VFS: Perm...
23

07b20889e   Ram Pai   [PATCH] beginning...
24
25
26
  #define MNT_NOSUID	0x01
  #define MNT_NODEV	0x02
  #define MNT_NOEXEC	0x04
fc33a7bb9   Christoph Hellwig   [PATCH] per-mount...
27
28
  #define MNT_NOATIME	0x08
  #define MNT_NODIRATIME	0x10
47ae32d6a   Valerie Henson   [PATCH] relative ...
29
  #define MNT_RELATIME	0x20
2e4b7fcd9   Dave Hansen   [PATCH] r/o bind ...
30
  #define MNT_READONLY	0x40	/* does the user want this to be r/o? */
bf066c7db   Miklos Szeredi   [PATCH] shared mo...
31

5528f911b   Trond Myklebust   VFS: Add shrink_s...
32
  #define MNT_SHRINKABLE	0x100
d3ef3d735   npiggin@suse.de   fs: mnt_want_writ...
33
  #define MNT_WRITE_HOLD	0x200
5528f911b   Trond Myklebust   VFS: Add shrink_s...
34

fc33a7bb9   Christoph Hellwig   [PATCH] per-mount...
35
36
  #define MNT_SHARED	0x1000	/* if the vfsmount is a shared mount */
  #define MNT_UNBINDABLE	0x2000	/* if the vfsmount is a unbindable mount */
495d6c9c6   Valerie Aurora   VFS: Clean up sha...
37
38
39
40
41
42
43
44
45
  /*
   * MNT_SHARED_MASK is the set of flags that should be cleared when a
   * mount becomes shared.  Currently, this is only the flag that says a
   * mount cannot be bind mounted, since this is how we create a mount
   * that shares events with another mount.  If you add a new MNT_*
   * flag, consider how it interacts with shared mounts.
   */
  #define MNT_SHARED_MASK	(MNT_UNBINDABLE)
  #define MNT_PROPAGATION_MASK	(MNT_SHARED | MNT_UNBINDABLE)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
46

8089352a1   Al Viro   Mirror MS_KERNMOU...
47
  #define MNT_INTERNAL	0x4000
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
48

07b20889e   Ram Pai   [PATCH] beginning...
49
  struct vfsmount {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
50
51
  	struct dentry *mnt_root;	/* root of the mounted tree */
  	struct super_block *mnt_sb;	/* pointer to superblock */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
52
  	int mnt_flags;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
53
  };
96029c4e0   npiggin@suse.de   fs: introduce mnt...
54
  struct file; /* forward dec */
8366025eb   Dave Hansen   [PATCH] r/o bind ...
55
  extern int mnt_want_write(struct vfsmount *mnt);
96029c4e0   npiggin@suse.de   fs: introduce mnt...
56
57
  extern int mnt_want_write_file(struct file *file);
  extern int mnt_clone_write(struct vfsmount *mnt);
8366025eb   Dave Hansen   [PATCH] r/o bind ...
58
  extern void mnt_drop_write(struct vfsmount *mnt);
2a79f17e4   Al Viro   vfs: mnt_drop_wri...
59
  extern void mnt_drop_write_file(struct file *file);
b3e19d924   Nick Piggin   fs: scale mntget/...
60
61
  extern void mntput(struct vfsmount *mnt);
  extern struct vfsmount *mntget(struct vfsmount *mnt);
7b7b1ace2   Al Viro   [PATCH] saner han...
62
63
  extern void mnt_pin(struct vfsmount *mnt);
  extern void mnt_unpin(struct vfsmount *mnt);
8366025eb   Dave Hansen   [PATCH] r/o bind ...
64
  extern int __mnt_is_readonly(struct vfsmount *mnt);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
65

bb4a58bf4   Trond Myklebust   VFS: Add GPL_EXPO...
66
67
68
69
  struct file_system_type;
  extern struct vfsmount *vfs_kern_mount(struct file_system_type *type,
  				      int flags, const char *name,
  				      void *data);
ea5b778a8   David Howells   Unexport do_add_m...
70
  extern void mnt_set_expiry(struct vfsmount *mnt, struct list_head *expiry_list);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
71
  extern void mark_mounts_for_expiry(struct list_head *mounts);
d53d9f16e   Andrew Morton   [PATCH] name_to_d...
72
  extern dev_t name_to_dev_t(char *name);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
73

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
74
  #endif /* _LINUX_MOUNT_H */