#include <linux/fs.h>
#include <linux/module.h>
#include <linux/parser.h>
#include <linux/completion.h>
#include <linux/vfs.h>
#include <linux/quotaops.h>
#include <linux/mount.h>
#include <linux/moduleparam.h>
#include <linux/kthread.h>
#include <linux/posix_acl.h>
#include <linux/buffer_head.h>
#include <linux/exportfs.h>
#include <linux/crc32.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/seq_file.h>
#include <linux/blkdev.h>
#include "jfs_incore.h"
#include "jfs_filsys.h"
#include "jfs_inode.h"
#include "jfs_metapage.h"
#include "jfs_superblock.h"
#include "jfs_dmap.h"
#include "jfs_imap.h"
#include "jfs_acl.h"
#include "jfs_debug.h"
#include "jfs_xattr.h"
#include "jfs_dinode.h"
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
static struct kmem_cache *jfs_inode_cachep;
static const struct super_operations jfs_super_operations;
static const struct export_operations jfs_export_operations;
static struct file_system_type jfs_fs_type;
#define MAX_COMMIT_THREADS …
static int commit_threads;
module_param(commit_threads, int, 0);
MODULE_PARM_DESC(…) …;
static struct task_struct *jfsCommitThread[MAX_COMMIT_THREADS];
struct task_struct *jfsIOthread;
struct task_struct *jfsSyncThread;
#ifdef CONFIG_JFS_DEBUG
int jfsloglevel = …;
module_param(jfsloglevel, int, 0644);
MODULE_PARM_DESC(…) …;
#endif
static void jfs_handle_error(struct super_block *sb)
{ … }
void jfs_error(struct super_block *sb, const char *fmt, ...)
{ … }
static struct inode *jfs_alloc_inode(struct super_block *sb)
{ … }
static void jfs_free_inode(struct inode *inode)
{ … }
static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf)
{ … }
#ifdef CONFIG_QUOTA
static int jfs_quota_off(struct super_block *sb, int type);
static int jfs_quota_on(struct super_block *sb, int type, int format_id,
const struct path *path);
static void jfs_quota_off_umount(struct super_block *sb)
{ … }
static const struct quotactl_ops jfs_quotactl_ops = …;
#else
static inline void jfs_quota_off_umount(struct super_block *sb)
{
}
#endif
static void jfs_put_super(struct super_block *sb)
{ … }
enum { … };
static const match_table_t tokens = …;
static int parse_options(char *options, struct super_block *sb, s64 *newLVSize,
int *flag)
{ … }
static int jfs_remount(struct super_block *sb, int *flags, char *data)
{ … }
static int jfs_fill_super(struct super_block *sb, void *data, int silent)
{ … }
static int jfs_freeze(struct super_block *sb)
{ … }
static int jfs_unfreeze(struct super_block *sb)
{ … }
static struct dentry *jfs_do_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data)
{ … }
static int jfs_sync_fs(struct super_block *sb, int wait)
{ … }
static int jfs_show_options(struct seq_file *seq, struct dentry *root)
{ … }
#ifdef CONFIG_QUOTA
static ssize_t jfs_quota_read(struct super_block *sb, int type, char *data,
size_t len, loff_t off)
{ … }
static ssize_t jfs_quota_write(struct super_block *sb, int type,
const char *data, size_t len, loff_t off)
{ … }
static struct dquot __rcu **jfs_get_dquots(struct inode *inode)
{ … }
static int jfs_quota_on(struct super_block *sb, int type, int format_id,
const struct path *path)
{ … }
static int jfs_quota_off(struct super_block *sb, int type)
{ … }
#endif
static const struct super_operations jfs_super_operations = …;
static const struct export_operations jfs_export_operations = …;
static struct file_system_type jfs_fs_type = …;
MODULE_ALIAS_FS(…) …;
static void init_once(void *foo)
{ … }
static int __init init_jfs_fs(void)
{ … }
static void __exit exit_jfs_fs(void)
{ … }
module_init(…) …
module_exit(…)