| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| #include <linux/fs_context.h> | |
| #include <linux/fs_parser.h> | |
| struct ovl_fs; | |
| struct ovl_config; | |
| extern const struct fs_parameter_spec ovl_parameter_spec[]; | |
| extern const struct constant_table ovl_parameter_redirect_dir[]; | |
| /* The set of options that user requested explicitly via mount options */ | |
| struct ovl_opt_set { | |
| bool metacopy; | |
| bool redirect; | |
| bool nfs_export; | |
| bool index; | |
| }; | |
| #define OVL_MAX_STACK 500 | |
| struct ovl_fs_context_layer { | |
| char *name; | |
| struct path path; | |
| }; | |
| struct ovl_fs_context { | |
| struct path upper; | |
| struct path work; | |
| size_t capacity; | |
| size_t nr; /* includes nr_data */ | |
| size_t nr_data; | |
| struct ovl_opt_set set; | |
| struct ovl_fs_context_layer *lower; | |
| char *lowerdir_all; /* user provided lowerdir string */ | |
| bool casefold_set; | |
| }; | |
| int ovl_init_fs_context(struct fs_context *fc); | |
| void ovl_free_fs(struct ovl_fs *ofs); | |
| int ovl_fs_params_verify(const struct ovl_fs_context *ctx, | |
| struct ovl_config *config); | |
| int ovl_show_options(struct seq_file *m, struct dentry *dentry); | |
| const char *ovl_xino_mode(struct ovl_config *config); |