#include <linux/module.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/blkdev.h>
#include <linux/crc32.h>
#include <linux/vfs.h>
#include <linux/writeback.h>
#include <linux/seq_file.h>
#include <linux/mount.h>
#include <linux/fs_context.h>
#include <linux/fs_parser.h>
#include "nilfs.h"
#include "export.h"
#include "mdt.h"
#include "alloc.h"
#include "btree.h"
#include "btnode.h"
#include "page.h"
#include "cpfile.h"
#include "sufile.h"
#include "ifile.h"
#include "dat.h"
#include "segment.h"
#include "segbuf.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static struct kmem_cache *nilfs_inode_cachep;
struct kmem_cache *nilfs_transaction_cachep;
struct kmem_cache *nilfs_segbuf_cachep;
struct kmem_cache *nilfs_btree_path_cache;
static int nilfs_setup_super(struct super_block *sb, int is_mount);
void __nilfs_msg(struct super_block *sb, const char *fmt, ...)
{ … }
static void nilfs_set_error(struct super_block *sb)
{ … }
void __nilfs_error(struct super_block *sb, const char *function,
const char *fmt, ...)
{ … }
struct inode *nilfs_alloc_inode(struct super_block *sb)
{ … }
static void nilfs_free_inode(struct inode *inode)
{ … }
static int nilfs_sync_super(struct super_block *sb, int flag)
{ … }
void nilfs_set_log_cursor(struct nilfs_super_block *sbp,
struct the_nilfs *nilfs)
{ … }
struct nilfs_super_block **nilfs_prepare_super(struct super_block *sb,
int flip)
{ … }
int nilfs_commit_super(struct super_block *sb, int flag)
{ … }
int nilfs_cleanup_super(struct super_block *sb)
{ … }
static int nilfs_move_2nd_super(struct super_block *sb, loff_t sb2off)
{ … }
int nilfs_resize_fs(struct super_block *sb, __u64 newsize)
{ … }
static void nilfs_put_super(struct super_block *sb)
{ … }
static int nilfs_sync_fs(struct super_block *sb, int wait)
{ … }
int nilfs_attach_checkpoint(struct super_block *sb, __u64 cno, int curr_mnt,
struct nilfs_root **rootp)
{ … }
static int nilfs_freeze(struct super_block *sb)
{ … }
static int nilfs_unfreeze(struct super_block *sb)
{ … }
static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf)
{ … }
static int nilfs_show_options(struct seq_file *seq, struct dentry *dentry)
{ … }
static const struct super_operations nilfs_sops = …;
enum { … };
static const struct constant_table nilfs_param_err[] = …;
static const struct fs_parameter_spec nilfs_param_spec[] = …;
struct nilfs_fs_context { … };
static int nilfs_parse_param(struct fs_context *fc, struct fs_parameter *param)
{ … }
static int nilfs_setup_super(struct super_block *sb, int is_mount)
{ … }
struct nilfs_super_block *nilfs_read_super_block(struct super_block *sb,
u64 pos, int blocksize,
struct buffer_head **pbh)
{ … }
int nilfs_store_magic(struct super_block *sb,
struct nilfs_super_block *sbp)
{ … }
int nilfs_check_feature_compatibility(struct super_block *sb,
struct nilfs_super_block *sbp)
{ … }
static int nilfs_get_root_dentry(struct super_block *sb,
struct nilfs_root *root,
struct dentry **root_dentry)
{ … }
static int nilfs_attach_snapshot(struct super_block *s, __u64 cno,
struct dentry **root_dentry)
{ … }
static bool nilfs_tree_is_busy(struct dentry *root_dentry)
{ … }
int nilfs_checkpoint_is_mounted(struct super_block *sb, __u64 cno)
{ … }
static int
nilfs_fill_super(struct super_block *sb, struct fs_context *fc)
{ … }
static int nilfs_reconfigure(struct fs_context *fc)
{ … }
static int
nilfs_get_tree(struct fs_context *fc)
{ … }
static void nilfs_free_fc(struct fs_context *fc)
{ … }
static const struct fs_context_operations nilfs_context_ops = …;
static int nilfs_init_fs_context(struct fs_context *fc)
{ … }
struct file_system_type nilfs_fs_type = …;
MODULE_ALIAS_FS(…) …;
static void nilfs_inode_init_once(void *obj)
{ … }
static void nilfs_segbuf_init_once(void *obj)
{ … }
static void nilfs_destroy_cachep(void)
{ … }
static int __init nilfs_init_cachep(void)
{ … }
static int __init init_nilfs_fs(void)
{ … }
static void __exit exit_nilfs_fs(void)
{ … }
module_init(…) …
module_exit(…)