#include <linux/module.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/buffer_head.h>
#include <linux/vfs.h>
#include <linux/writeback.h>
#include <linux/uio.h>
#include <linux/uaccess.h>
#include "bfs.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#undef DEBUG
#ifdef DEBUG
#define dprintf …
#else
#define dprintf(x...) …
#endif
struct inode *bfs_iget(struct super_block *sb, unsigned long ino)
{ … }
static struct bfs_inode *find_inode(struct super_block *sb, u16 ino, struct buffer_head **p)
{ … }
static int bfs_write_inode(struct inode *inode, struct writeback_control *wbc)
{ … }
static void bfs_evict_inode(struct inode *inode)
{ … }
static void bfs_put_super(struct super_block *s)
{ … }
static int bfs_statfs(struct dentry *dentry, struct kstatfs *buf)
{ … }
static struct kmem_cache *bfs_inode_cachep;
static struct inode *bfs_alloc_inode(struct super_block *sb)
{ … }
static void bfs_free_inode(struct inode *inode)
{ … }
static void init_once(void *foo)
{ … }
static int __init init_inodecache(void)
{ … }
static void destroy_inodecache(void)
{ … }
static const struct super_operations bfs_sops = …;
void bfs_dump_imap(const char *prefix, struct super_block *s)
{ … }
static int bfs_fill_super(struct super_block *s, void *data, int silent)
{ … }
static struct dentry *bfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data)
{ … }
static struct file_system_type bfs_fs_type = …;
MODULE_ALIAS_FS(…) …;
static int __init init_bfs_fs(void)
{ … }
static void __exit exit_bfs_fs(void)
{ … }
module_init(…) …
module_exit(…)