#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/sched.h>
#include <linux/cred.h>
#include <linux/parser.h>
#include <linux/slab.h>
#include <linux/seq_file.h>
#include <net/9p/9p.h>
#include <net/9p/client.h>
#include <net/9p/transport.h>
#include "v9fs.h"
#include "v9fs_vfs.h"
#include "cache.h"
static DEFINE_SPINLOCK(v9fs_sessionlist_lock);
static LIST_HEAD(v9fs_sessionlist);
struct kmem_cache *v9fs_inode_cache;
enum { … };
static const match_table_t tokens = …;
static int get_cache_mode(char *s)
{ … }
int v9fs_show_options(struct seq_file *m, struct dentry *root)
{ … }
static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
{ … }
struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
const char *dev_name, char *data)
{ … }
void v9fs_session_close(struct v9fs_session_info *v9ses)
{ … }
void v9fs_session_cancel(struct v9fs_session_info *v9ses)
{ … }
void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses)
{ … }
static struct kobject *v9fs_kobj;
#ifdef CONFIG_9P_FSCACHE
static ssize_t caches_show(struct kobject *kobj,
struct kobj_attribute *attr,
char *buf)
{ … }
static struct kobj_attribute v9fs_attr_cache = …;
#endif
static struct attribute *v9fs_attrs[] = …;
static const struct attribute_group v9fs_attr_group = …;
static int __init v9fs_sysfs_init(void)
{ … }
static void v9fs_sysfs_cleanup(void)
{ … }
static void v9fs_inode_init_once(void *foo)
{ … }
static int v9fs_init_inode_cache(void)
{ … }
static void v9fs_destroy_inode_cache(void)
{ … }
static int v9fs_cache_register(void)
{ … }
static void v9fs_cache_unregister(void)
{ … }
static int __init init_v9fs(void)
{ … }
static void __exit exit_v9fs(void)
{ … }
module_init(…) …
module_exit(…)
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;