.. | .. |
---|
22 | 22 | struct vfsmount; |
---|
23 | 23 | struct dentry; |
---|
24 | 24 | struct mnt_namespace; |
---|
| 25 | +struct fs_context; |
---|
25 | 26 | |
---|
26 | 27 | #define MNT_NOSUID 0x01 |
---|
27 | 28 | #define MNT_NODEV 0x02 |
---|
.. | .. |
---|
30 | 31 | #define MNT_NODIRATIME 0x10 |
---|
31 | 32 | #define MNT_RELATIME 0x20 |
---|
32 | 33 | #define MNT_READONLY 0x40 /* does the user want this to be r/o? */ |
---|
| 34 | +#define MNT_NOSYMFOLLOW 0x80 |
---|
33 | 35 | |
---|
34 | 36 | #define MNT_SHRINKABLE 0x100 |
---|
35 | 37 | #define MNT_WRITE_HOLD 0x200 |
---|
.. | .. |
---|
46 | 48 | #define MNT_SHARED_MASK (MNT_UNBINDABLE) |
---|
47 | 49 | #define MNT_USER_SETTABLE_MASK (MNT_NOSUID | MNT_NODEV | MNT_NOEXEC \ |
---|
48 | 50 | | MNT_NOATIME | MNT_NODIRATIME | MNT_RELATIME \ |
---|
49 | | - | MNT_READONLY) |
---|
| 51 | + | MNT_READONLY | MNT_NOSYMFOLLOW) |
---|
50 | 52 | #define MNT_ATIME_MASK (MNT_NOATIME | MNT_NODIRATIME | MNT_RELATIME ) |
---|
51 | 53 | |
---|
52 | 54 | #define MNT_INTERNAL_FLAGS (MNT_SHARED | MNT_WRITE_HOLD | MNT_INTERNAL | \ |
---|
53 | | - MNT_DOOMED | MNT_SYNC_UMOUNT | MNT_MARKED) |
---|
| 55 | + MNT_DOOMED | MNT_SYNC_UMOUNT | MNT_MARKED | \ |
---|
| 56 | + MNT_CURSOR) |
---|
54 | 57 | |
---|
55 | 58 | #define MNT_INTERNAL 0x4000 |
---|
56 | 59 | |
---|
.. | .. |
---|
64 | 67 | #define MNT_SYNC_UMOUNT 0x2000000 |
---|
65 | 68 | #define MNT_MARKED 0x4000000 |
---|
66 | 69 | #define MNT_UMOUNT 0x8000000 |
---|
| 70 | +#define MNT_CURSOR 0x10000000 |
---|
67 | 71 | |
---|
68 | 72 | struct vfsmount { |
---|
69 | 73 | struct dentry *mnt_root; /* root of the mounted tree */ |
---|
70 | 74 | struct super_block *mnt_sb; /* pointer to superblock */ |
---|
71 | 75 | int mnt_flags; |
---|
| 76 | + |
---|
72 | 77 | ANDROID_KABI_RESERVE(1); |
---|
73 | 78 | ANDROID_KABI_RESERVE(2); |
---|
74 | 79 | ANDROID_KABI_RESERVE(3); |
---|
75 | 80 | ANDROID_KABI_RESERVE(4); |
---|
76 | | - void *data; |
---|
77 | 81 | } __randomize_layout; |
---|
78 | 82 | |
---|
79 | 83 | struct file; /* forward dec */ |
---|
.. | .. |
---|
87 | 91 | extern void mntput(struct vfsmount *mnt); |
---|
88 | 92 | extern struct vfsmount *mntget(struct vfsmount *mnt); |
---|
89 | 93 | extern struct vfsmount *mnt_clone_internal(const struct path *path); |
---|
90 | | -extern int __mnt_is_readonly(struct vfsmount *mnt); |
---|
| 94 | +extern bool __mnt_is_readonly(struct vfsmount *mnt); |
---|
91 | 95 | extern bool mnt_may_suid(struct vfsmount *mnt); |
---|
92 | 96 | |
---|
93 | 97 | struct path; |
---|
.. | .. |
---|
96 | 100 | extern void __mnt_drop_write(struct vfsmount *); |
---|
97 | 101 | |
---|
98 | 102 | struct file_system_type; |
---|
| 103 | +extern struct vfsmount *fc_mount(struct fs_context *fc); |
---|
| 104 | +extern struct vfsmount *vfs_create_mount(struct fs_context *fc); |
---|
99 | 105 | extern struct vfsmount *vfs_kern_mount(struct file_system_type *type, |
---|
100 | 106 | int flags, const char *name, |
---|
101 | 107 | void *data); |
---|
.. | .. |
---|
112 | 118 | |
---|
113 | 119 | extern bool path_is_mountpoint(const struct path *path); |
---|
114 | 120 | |
---|
| 121 | +extern void kern_unmount_array(struct vfsmount *mnt[], unsigned int num); |
---|
| 122 | + |
---|
115 | 123 | #endif /* _LINUX_MOUNT_H */ |
---|