]> git.ipfire.org Git - thirdparty/kernel/linux.git/blob - fs/overlayfs/params.h
Merge tag 'irq-urgent-2023-08-26' of git://git.kernel.org/pub/scm/linux/kernel/git...
[thirdparty/kernel/linux.git] / fs / overlayfs / params.h
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 };
36
37 int ovl_init_fs_context(struct fs_context *fc);
38 void ovl_free_fs(struct ovl_fs *ofs);
39 int ovl_fs_params_verify(const struct ovl_fs_context *ctx,
40 struct ovl_config *config);
41 int ovl_show_options(struct seq_file *m, struct dentry *dentry);
42 const char *ovl_xino_mode(struct ovl_config *config);