1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3#include <linux/fs_context.h> 4#include <linux/fs_parser.h> 5 6struct ovl_fs; 7struct ovl_config; 8 9extern const struct fs_parameter_spec ovl_parameter_spec[]; 10extern const struct constant_table ovl_parameter_redirect_dir[]; 11 12/* The set of options that user requested explicitly via mount options */ 13struct 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 22struct ovl_fs_context_layer { 23 char *name; 24 struct path path; 25}; 26 27struct 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 38int ovl_init_fs_context(struct fs_context *fc); 39void ovl_free_fs(struct ovl_fs *ofs); 40int ovl_fs_params_verify(const struct ovl_fs_context *ctx, 41 struct ovl_config *config); 42int ovl_show_options(struct seq_file *m, struct dentry *dentry); 43const char *ovl_xino_mode(struct ovl_config *config); 44