1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
---|---|
2 | |
3 | #include <linux/fs_context.h> |
4 | #include <linux/fs_parser.h> |
5 | |
6 | struct ovl_fs; |
7 | struct ovl_config; |
8 | |
9 | extern const struct fs_parameter_spec ovl_parameter_spec[]; |
10 | extern const struct constant_table ovl_parameter_redirect_dir[]; |
11 | |
12 | /* The set of options that user requested explicitly via mount options */ |
13 | struct ovl_opt_set { |
14 | bool metacopy; |
15 | bool redirect; |
16 | bool nfs_export; |
17 | bool index; |
18 | }; |
19 | |
20 | #define OVL_MAX_STACK 500 |
21 | |
22 | struct ovl_fs_context_layer { |
23 | char *name; |
24 | struct path path; |
25 | }; |
26 | |
27 | struct ovl_fs_context { |
28 | struct path upper; |
29 | struct path work; |
30 | size_t capacity; |
31 | size_t nr; /* includes nr_data */ |
32 | size_t nr_data; |
33 | struct ovl_opt_set set; |
34 | struct ovl_fs_context_layer *lower; |
35 | char *lowerdir_all; /* user provided lowerdir string */ |
36 | }; |
37 | |
38 | int ovl_init_fs_context(struct fs_context *fc); |
39 | void ovl_free_fs(struct ovl_fs *ofs); |
40 | int ovl_fs_params_verify(const struct ovl_fs_context *ctx, |
41 | struct ovl_config *config); |
42 | int ovl_show_options(struct seq_file *m, struct dentry *dentry); |
43 | const char *ovl_xino_mode(struct ovl_config *config); |
44 |