extern const struct fs fs_class_sis;
extern const struct fs fs_class_sis_queue;
+void fs_class_register(const struct fs *fs_class);
+
void fs_set_error(struct fs *fs, const char *fmt, ...) ATTR_FORMAT(2, 3);
void fs_set_critical(struct fs *fs, const char *fmt, ...) ATTR_FORMAT(2, 3);
static struct module *fs_modules = NULL;
static ARRAY(const struct fs *) fs_classes;
+static void fs_classes_init(void);
+
static int
fs_alloc(const struct fs *fs_class, const char *args,
const struct fs_settings *set, struct fs **fs_r, const char **error_r)
return 0;
}
-static void fs_class_register(const struct fs *fs_class)
+void fs_class_register(const struct fs *fs_class)
{
+ if (!array_is_created(&fs_classes))
+ fs_classes_init();
array_append(&fs_classes, &fs_class, 1);
}