#include <linux/module.h>
#include <linux/init.h>
#include <linux/pagemap.h>
#include <linux/blkdev.h>
#include <linux/backing-dev.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/vfs.h>
#include <linux/nls.h>
static struct inode *hfsplus_alloc_inode(struct super_block *sb);
static void hfsplus_free_inode(struct inode *inode);
#include "hfsplus_fs.h"
#include "xattr.h"
static int hfsplus_system_read_inode(struct inode *inode)
{ … }
struct inode *hfsplus_iget(struct super_block *sb, unsigned long ino)
{ … }
static int hfsplus_system_write_inode(struct inode *inode)
{ … }
static int hfsplus_write_inode(struct inode *inode,
struct writeback_control *wbc)
{ … }
static void hfsplus_evict_inode(struct inode *inode)
{ … }
static int hfsplus_sync_fs(struct super_block *sb, int wait)
{ … }
static void delayed_sync_fs(struct work_struct *work)
{ … }
void hfsplus_mark_mdb_dirty(struct super_block *sb)
{ … }
static void delayed_free(struct rcu_head *p)
{ … }
static void hfsplus_put_super(struct super_block *sb)
{ … }
static int hfsplus_statfs(struct dentry *dentry, struct kstatfs *buf)
{ … }
static int hfsplus_remount(struct super_block *sb, int *flags, char *data)
{ … }
static const struct super_operations hfsplus_sops = …;
static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static struct kmem_cache *hfsplus_inode_cachep;
static struct inode *hfsplus_alloc_inode(struct super_block *sb)
{ … }
static void hfsplus_free_inode(struct inode *inode)
{ … }
#define HFSPLUS_INODE_SIZE …
static struct dentry *hfsplus_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data)
{ … }
static struct file_system_type hfsplus_fs_type = …;
MODULE_ALIAS_FS(…) …;
static void hfsplus_init_once(void *p)
{ … }
static int __init init_hfsplus_fs(void)
{ … }
static void __exit exit_hfsplus_fs(void)
{ … }
module_init(…) …
module_exit(…)