#define pr_fmt(fmt) …
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/completion.h>
#include <linux/buffer_head.h>
#include <linux/blkdev.h>
#include <linux/kthread.h>
#include <linux/export.h>
#include <linux/namei.h>
#include <linux/mount.h>
#include <linux/gfs2_ondisk.h>
#include <linux/quotaops.h>
#include <linux/lockdep.h>
#include <linux/module.h>
#include <linux/backing-dev.h>
#include <linux/fs_parser.h>
#include "gfs2.h"
#include "incore.h"
#include "bmap.h"
#include "glock.h"
#include "glops.h"
#include "inode.h"
#include "recovery.h"
#include "rgrp.h"
#include "super.h"
#include "sys.h"
#include "util.h"
#include "log.h"
#include "quota.h"
#include "dir.h"
#include "meta_io.h"
#include "trace_gfs2.h"
#include "lops.h"
#define DO …
#define UNDO …
static void gfs2_tune_init(struct gfs2_tune *gt)
{ … }
void free_sbd(struct gfs2_sbd *sdp)
{ … }
static struct gfs2_sbd *init_sbd(struct super_block *sb)
{ … }
static int gfs2_check_sb(struct gfs2_sbd *sdp, int silent)
{ … }
static void gfs2_sb_in(struct gfs2_sbd *sdp, const struct gfs2_sb *str)
{ … }
static int gfs2_read_super(struct gfs2_sbd *sdp, sector_t sector, int silent)
{ … }
static int gfs2_read_sb(struct gfs2_sbd *sdp, int silent)
{ … }
static int init_names(struct gfs2_sbd *sdp, int silent)
{ … }
static int init_locking(struct gfs2_sbd *sdp, struct gfs2_holder *mount_gh,
int undo)
{ … }
static int gfs2_lookup_root(struct super_block *sb, struct dentry **dptr,
u64 no_addr, const char *name)
{ … }
static int init_sb(struct gfs2_sbd *sdp, int silent)
{ … }
static void gfs2_others_may_mount(struct gfs2_sbd *sdp)
{ … }
static int gfs2_jindex_hold(struct gfs2_sbd *sdp, struct gfs2_holder *ji_gh)
{ … }
static int init_statfs(struct gfs2_sbd *sdp)
{ … }
static void uninit_statfs(struct gfs2_sbd *sdp)
{ … }
static int init_journal(struct gfs2_sbd *sdp, int undo)
{ … }
static struct lock_class_key gfs2_quota_imutex_key;
static int init_inodes(struct gfs2_sbd *sdp, int undo)
{ … }
static int init_per_node(struct gfs2_sbd *sdp, int undo)
{ … }
static const match_table_t nolock_tokens = …;
static const struct lm_lockops nolock_ops = …;
static int gfs2_lm_mount(struct gfs2_sbd *sdp, int silent)
{ … }
void gfs2_lm_unmount(struct gfs2_sbd *sdp)
{ … }
static int wait_on_journal(struct gfs2_sbd *sdp)
{ … }
void gfs2_online_uevent(struct gfs2_sbd *sdp)
{ … }
static int init_threads(struct gfs2_sbd *sdp)
{ … }
void gfs2_destroy_threads(struct gfs2_sbd *sdp)
{ … }
static int gfs2_fill_super(struct super_block *sb, struct fs_context *fc)
{ … }
static int gfs2_get_tree(struct fs_context *fc)
{ … }
static void gfs2_fc_free(struct fs_context *fc)
{ … }
enum gfs2_param { … };
static const struct constant_table gfs2_param_quota[] = …;
enum opt_data { … };
static const struct constant_table gfs2_param_data[] = …;
enum opt_errors { … };
static const struct constant_table gfs2_param_errors[] = …;
static const struct fs_parameter_spec gfs2_fs_parameters[] = …;
static int gfs2_parse_param(struct fs_context *fc, struct fs_parameter *param)
{ … }
static int gfs2_reconfigure(struct fs_context *fc)
{ … }
static const struct fs_context_operations gfs2_context_ops = …;
static int gfs2_init_fs_context(struct fs_context *fc)
{ … }
static int set_meta_super(struct super_block *s, struct fs_context *fc)
{ … }
static int test_meta_super(struct super_block *s, struct fs_context *fc)
{ … }
static int gfs2_meta_get_tree(struct fs_context *fc)
{ … }
static const struct fs_context_operations gfs2_meta_context_ops = …;
static int gfs2_meta_init_fs_context(struct fs_context *fc)
{ … }
static void gfs2_evict_inodes(struct super_block *sb)
{ … }
static void gfs2_kill_sb(struct super_block *sb)
{ … }
struct file_system_type gfs2_fs_type = …;
MODULE_ALIAS_FS(…) …;
struct file_system_type gfs2meta_fs_type = …;
MODULE_ALIAS_FS(…) …;