summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/dcache.h1
-rw-r--r--include/linux/fs.h21
-rw-r--r--include/linux/fs_context.h7
-rw-r--r--include/linux/init.h5
-rw-r--r--include/linux/pseudo_fs.h16
-rw-r--r--include/linux/ramfs.h1
-rw-r--r--include/linux/syscalls.h4
7 files changed, 29 insertions, 26 deletions
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 5e0eadf7de55..9451011ac014 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -291,7 +291,6 @@ static inline unsigned d_count(const struct dentry *dentry)
291 */ 291 */
292extern __printf(4, 5) 292extern __printf(4, 5)
293char *dynamic_dname(struct dentry *, char *, int, const char *, ...); 293char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
294extern char *simple_dname(struct dentry *, char *, int);
295 294
296extern char *__d_path(const struct path *, const struct path *, char *, int); 295extern char *__d_path(const struct path *, const struct path *, char *, int);
297extern char *d_absolute_path(const struct path *, char *, int); 296extern char *d_absolute_path(const struct path *, char *, int);
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 75f2ed289a3f..56b8e358af5c 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2210,9 +2210,6 @@ struct file_system_type {
2210 2210
2211#define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME) 2211#define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)
2212 2212
2213extern struct dentry *mount_ns(struct file_system_type *fs_type,
2214 int flags, void *data, void *ns, struct user_namespace *user_ns,
2215 int (*fill_super)(struct super_block *, void *, int));
2216#ifdef CONFIG_BLOCK 2213#ifdef CONFIG_BLOCK
2217extern struct dentry *mount_bdev(struct file_system_type *fs_type, 2214extern struct dentry *mount_bdev(struct file_system_type *fs_type,
2218 int flags, const char *dev_name, void *data, 2215 int flags, const char *dev_name, void *data,
@@ -2252,28 +2249,10 @@ void free_anon_bdev(dev_t);
2252struct super_block *sget_fc(struct fs_context *fc, 2249struct super_block *sget_fc(struct fs_context *fc,
2253 int (*test)(struct super_block *, struct fs_context *), 2250 int (*test)(struct super_block *, struct fs_context *),
2254 int (*set)(struct super_block *, struct fs_context *)); 2251 int (*set)(struct super_block *, struct fs_context *));
2255struct super_block *sget_userns(struct file_system_type *type,
2256 int (*test)(struct super_block *,void *),
2257 int (*set)(struct super_block *,void *),
2258 int flags, struct user_namespace *user_ns,
2259 void *data);
2260struct super_block *sget(struct file_system_type *type, 2252struct super_block *sget(struct file_system_type *type,
2261 int (*test)(struct super_block *,void *), 2253 int (*test)(struct super_block *,void *),
2262 int (*set)(struct super_block *,void *), 2254 int (*set)(struct super_block *,void *),
2263 int flags, void *data); 2255 int flags, void *data);
2264extern struct dentry *mount_pseudo_xattr(struct file_system_type *, char *,
2265 const struct super_operations *ops,
2266 const struct xattr_handler **xattr,
2267 const struct dentry_operations *dops,
2268 unsigned long);
2269
2270static inline struct dentry *
2271mount_pseudo(struct file_system_type *fs_type, char *name,
2272 const struct super_operations *ops,
2273 const struct dentry_operations *dops, unsigned long magic)
2274{
2275 return mount_pseudo_xattr(fs_type, name, ops, NULL, dops, magic);
2276}
2277 2256
2278/* Alas, no aliases. Too much hassle with bringing module.h everywhere */ 2257/* Alas, no aliases. Too much hassle with bringing module.h everywhere */
2279#define fops_get(fops) \ 2258#define fops_get(fops) \
diff --git a/include/linux/fs_context.h b/include/linux/fs_context.h
index 4933187d5b9a..7c6fe3d47fa6 100644
--- a/include/linux/fs_context.h
+++ b/include/linux/fs_context.h
@@ -99,6 +99,7 @@ struct fs_context {
99 void *s_fs_info; /* Proposed s_fs_info */ 99 void *s_fs_info; /* Proposed s_fs_info */
100 unsigned int sb_flags; /* Proposed superblock flags (SB_*) */ 100 unsigned int sb_flags; /* Proposed superblock flags (SB_*) */
101 unsigned int sb_flags_mask; /* Superblock flags that were changed */ 101 unsigned int sb_flags_mask; /* Superblock flags that were changed */
102 unsigned int s_iflags; /* OR'd with sb->s_iflags */
102 unsigned int lsm_flags; /* Information flags from the fs to the LSM */ 103 unsigned int lsm_flags; /* Information flags from the fs to the LSM */
103 enum fs_context_purpose purpose:8; 104 enum fs_context_purpose purpose:8;
104 enum fs_context_phase phase:8; /* The phase the context is in */ 105 enum fs_context_phase phase:8; /* The phase the context is in */
@@ -146,6 +147,12 @@ extern int vfs_get_super(struct fs_context *fc,
146 enum vfs_get_super_keying keying, 147 enum vfs_get_super_keying keying,
147 int (*fill_super)(struct super_block *sb, 148 int (*fill_super)(struct super_block *sb,
148 struct fs_context *fc)); 149 struct fs_context *fc));
150extern int get_tree_nodev(struct fs_context *fc,
151 int (*fill_super)(struct super_block *sb,
152 struct fs_context *fc));
153extern int get_tree_single(struct fs_context *fc,
154 int (*fill_super)(struct super_block *sb,
155 struct fs_context *fc));
149 156
150extern const struct file_operations fscontext_fops; 157extern const struct file_operations fscontext_fops;
151 158
diff --git a/include/linux/init.h b/include/linux/init.h
index 5255069f5a9f..212fc9e2f691 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -137,6 +137,8 @@ extern initcall_entry_t __con_initcall_start[], __con_initcall_end[];
137/* Used for contructor calls. */ 137/* Used for contructor calls. */
138typedef void (*ctor_fn_t)(void); 138typedef void (*ctor_fn_t)(void);
139 139
140struct file_system_type;
141
140/* Defined in init/main.c */ 142/* Defined in init/main.c */
141extern int do_one_initcall(initcall_t fn); 143extern int do_one_initcall(initcall_t fn);
142extern char __initdata boot_command_line[]; 144extern char __initdata boot_command_line[];
@@ -146,7 +148,8 @@ extern unsigned int reset_devices;
146/* used by init/main.c */ 148/* used by init/main.c */
147void setup_arch(char **); 149void setup_arch(char **);
148void prepare_namespace(void); 150void prepare_namespace(void);
149int __init init_rootfs(void); 151void __init init_rootfs(void);
152extern struct file_system_type rootfs_fs_type;
150 153
151#if defined(CONFIG_STRICT_KERNEL_RWX) || defined(CONFIG_STRICT_MODULE_RWX) 154#if defined(CONFIG_STRICT_KERNEL_RWX) || defined(CONFIG_STRICT_MODULE_RWX)
152extern bool rodata_enabled; 155extern bool rodata_enabled;
diff --git a/include/linux/pseudo_fs.h b/include/linux/pseudo_fs.h
new file mode 100644
index 000000000000..eceda1d1407a
--- /dev/null
+++ b/include/linux/pseudo_fs.h
@@ -0,0 +1,16 @@
1#ifndef __LINUX_PSEUDO_FS__
2#define __LINUX_PSEUDO_FS__
3
4#include <linux/fs_context.h>
5
6struct pseudo_fs_context {
7 const struct super_operations *ops;
8 const struct xattr_handler **xattr;
9 const struct dentry_operations *dops;
10 unsigned long magic;
11};
12
13struct pseudo_fs_context *init_pseudo(struct fs_context *fc,
14 unsigned long magic);
15
16#endif
diff --git a/include/linux/ramfs.h b/include/linux/ramfs.h
index 5ef7d54caac2..ee582bdb7fda 100644
--- a/include/linux/ramfs.h
+++ b/include/linux/ramfs.h
@@ -19,7 +19,6 @@ extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize);
19 19
20extern const struct file_operations ramfs_file_operations; 20extern const struct file_operations ramfs_file_operations;
21extern const struct vm_operations_struct generic_file_vm_ops; 21extern const struct vm_operations_struct generic_file_vm_ops;
22extern int __init init_ramfs_fs(void);
23 22
24int ramfs_fill_super(struct super_block *sb, void *data, int silent); 23int ramfs_fill_super(struct super_block *sb, void *data, int silent);
25 24
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index b01d54a5732e..88145da7d140 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -1231,8 +1231,8 @@ asmlinkage long sys_ni_syscall(void);
1231 * the ksys_xyzyyz() functions prototyped below. 1231 * the ksys_xyzyyz() functions prototyped below.
1232 */ 1232 */
1233 1233
1234int ksys_mount(char __user *dev_name, char __user *dir_name, char __user *type, 1234int ksys_mount(const char __user *dev_name, const char __user *dir_name,
1235 unsigned long flags, void __user *data); 1235 const char __user *type, unsigned long flags, void __user *data);
1236int ksys_umount(char __user *name, int flags); 1236int ksys_umount(char __user *name, int flags);
1237int ksys_dup(unsigned int fildes); 1237int ksys_dup(unsigned int fildes);
1238int ksys_chroot(const char __user *filename); 1238int ksys_chroot(const char __user *filename);