#include <linux/module.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/fs.h>
#include <linux/vfs.h>
#include <linux/cred.h>
#include <linux/parser.h>
#include <linux/buffer_head.h>
#include <linux/vmalloc.h>
#include <linux/writeback.h>
#include <linux/seq_file.h>
#include <linux/crc-itu-t.h>
#include "omfs.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
struct buffer_head *omfs_bread(struct super_block *sb, sector_t block)
{ … }
struct inode *omfs_new_inode(struct inode *dir, umode_t mode)
{ … }
static void omfs_update_checksums(struct omfs_inode *oi)
{ … }
static int __omfs_write_inode(struct inode *inode, int wait)
{ … }
static int omfs_write_inode(struct inode *inode, struct writeback_control *wbc)
{ … }
int omfs_sync_inode(struct inode *inode)
{ … }
static void omfs_evict_inode(struct inode *inode)
{ … }
struct inode *omfs_iget(struct super_block *sb, ino_t ino)
{ … }
static void omfs_put_super(struct super_block *sb)
{ … }
static int omfs_statfs(struct dentry *dentry, struct kstatfs *buf)
{ … }
static int omfs_show_options(struct seq_file *m, struct dentry *root)
{ … }
static const struct super_operations omfs_sops = …;
static int omfs_get_imap(struct super_block *sb)
{ … }
enum { … };
static const match_table_t tokens = …;
static int parse_options(char *options, struct omfs_sb_info *sbi)
{ … }
static int omfs_fill_super(struct super_block *sb, void *data, int silent)
{ … }
static struct dentry *omfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data)
{ … }
static struct file_system_type omfs_fs_type = …;
MODULE_ALIAS_FS(…) …;
static int __init init_omfs_fs(void)
{ … }
static void __exit exit_omfs_fs(void)
{ … }
module_init(…) …;
module_exit(exit_omfs_fs);