Unused now.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
There's a core description struct that links everything together:
struct fs_parameter_description {
- const char name[16];
const struct fs_parameter_spec *specs;
const struct fs_parameter_enum *enums;
};
};
static const struct fs_parameter_description afs_fs_parameters = {
- .name = "kAFS",
.specs = afs_param_specs,
.enums = afs_param_enums,
};
The members are as follows:
- (1) const char name[16];
-
- The name to be used in error messages generated by the parse helper
- functions.
-
- (2) const struct fs_parameter_specification *specs;
+ (1) const struct fs_parameter_specification *specs;
Table of parameter specifications, terminated with a null entry, where the
entries are of type:
of arguments to specify the type and the flags for anything that doesn't
match one of the above macros.
- (6) const struct fs_parameter_enum *enums;
+ (2) const struct fs_parameter_enum *enums;
Table of enum value names to integer mappings, terminated with a null
entry. This is of type:
};
static const struct fs_parameter_description spufs_fs_parameters = {
- .name = "spufs",
.specs = spufs_param_specs,
};
};
static const struct fs_parameter_description hypfs_fs_parameters = {
- .name = "hypfs",
.specs = hypfs_param_specs,
};
};
static const struct fs_parameter_description rdt_fs_parameters = {
- .name = "rdt",
.specs = rdt_param_specs,
};
};
static const struct fs_parameter_description rbd_parameters = {
- .name = "rbd",
.specs = rbd_param_specs,
};
};
static const struct fs_parameter_description ffs_fs_fs_parameters = {
- .name = "kAFS",
.specs = ffs_fs_param_specs,
};
};
static const struct fs_parameter_description afs_fs_parameters = {
- .name = "kAFS",
.specs = afs_param_specs,
};
};
static const struct fs_parameter_description ceph_mount_parameters = {
- .name = "ceph",
.specs = ceph_mount_param_specs,
};
int res = 0;
struct file_system_type ** p;
- if (fs->parameters && !fs_validate_description(fs->parameters))
+ if (fs->parameters &&
+ !fs_validate_description(fs->name, fs->parameters))
return -EINVAL;
BUG_ON(strchr(fs->name, '.'));
* fs_validate_description - Validate a parameter description
* @desc: The parameter description to validate.
*/
-bool fs_validate_description(const struct fs_parameter_description *desc)
+bool fs_validate_description(const char *name,
+ const struct fs_parameter_description *desc)
{
const struct fs_parameter_spec *param, *p2;
- const char *name = desc->name;
bool good = true;
pr_notice("*** VALIDATE %s ***\n", name);
- if (!name[0]) {
- pr_err("VALIDATE Parser: No name\n");
- name = "Unknown";
- good = false;
- }
-
if (desc->specs) {
for (param = desc->specs; param->name; param++) {
enum fs_parameter_type t = param->type;
};
static const struct fs_parameter_description fuse_fs_parameters = {
- .name = "fuse",
.specs = fuse_param_specs,
};
};
static const struct fs_parameter_description gfs2_fs_parameters = {
- .name = "gfs2",
.specs = gfs2_param_specs,
};
};
static const struct fs_parameter_description hugetlb_fs_parameters = {
- .name = "hugetlbfs",
.specs = hugetlb_param_specs,
};
};
const struct fs_parameter_description jffs2_fs_parameters = {
- .name = "jffs2",
.specs = jffs2_param_specs,
};
};
static const struct fs_parameter_description nfs_fs_parameters = {
- .name = "nfs",
.specs = nfs_param_specs,
};
};
static const struct fs_parameter_description proc_fs_parameters = {
- .name = "proc",
.specs = proc_param_specs,
};
};
const struct fs_parameter_description ramfs_fs_parameters = {
- .name = "ramfs",
.specs = ramfs_param_specs,
};
};
static const struct fs_parameter_description xfs_fs_parameters = {
- .name = "xfs",
.specs = xfs_param_specs,
};
};
struct fs_parameter_description {
- const char name[16]; /* Name for logging purposes */
const struct fs_parameter_spec *specs; /* List of param specifications */
};
#ifdef CONFIG_VALIDATE_FS_PARSER
extern bool validate_constant_table(const struct constant_table *tbl, size_t tbl_size,
int low, int high, int special);
-extern bool fs_validate_description(const struct fs_parameter_description *desc);
+extern bool fs_validate_description(const char *name,
+ const struct fs_parameter_description *desc);
#else
static inline bool validate_constant_table(const struct constant_table *tbl, size_t tbl_size,
int low, int high, int special)
{ return true; }
-static inline bool fs_validate_description(const struct fs_parameter_description *desc)
+static inline bool fs_validate_description(const char *name,
+ const struct fs_parameter_description *desc)
{ return true; }
#endif
};
static const struct fs_parameter_description bpf_fs_parameters = {
- .name = "bpf",
.specs = bpf_param_specs,
};
};
const struct fs_parameter_description cgroup1_fs_parameters = {
- .name = "cgroup1",
.specs = cgroup1_param_specs,
};
};
static const struct fs_parameter_description cgroup2_fs_parameters = {
- .name = "cgroup2",
.specs = cgroup2_param_specs,
};
};
const struct fs_parameter_description shmem_fs_parameters = {
- .name = "tmpfs",
.specs = shmem_param_specs,
};
};
static const struct fs_parameter_description ceph_parameters = {
- .name = "libceph",
.specs = ceph_param_specs,
};
};
static const struct fs_parameter_description selinux_fs_parameters = {
- .name = "SELinux",
.specs = selinux_param_specs,
};
else
pr_debug("SELinux: Starting in permissive mode\n");
- fs_validate_description(&selinux_fs_parameters);
+ fs_validate_description("selinux", &selinux_fs_parameters);
return 0;
}
};
static const struct fs_parameter_description smack_fs_parameters = {
- .name = "smack",
.specs = smack_param_specs,
};