| .. | .. |
|---|
| 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 */ |
|---|