3d14c5d2b6
This factors out protocol and low-level storage parts of ceph into a separate libceph module living in net/ceph and include/linux/ceph. This is mostly a matter of moving files around. However, a few key pieces of the interface change as well: - ceph_client becomes ceph_fs_client and ceph_client, where the latter captures the mon and osd clients, and the fs_client gets the mds client and file system specific pieces. - Mount option parsing and debugfs setup is correspondingly broken into two pieces. - The mon client gets a generic handler callback for otherwise unknown messages (mds map, in this case). - The basic supported/required feature bits can be expanded (and are by ceph_fs_client). No functional change, aside from some subtle error handling cases that got cleaned up in the refactoring process. Signed-off-by: Sage Weil <sage@newdream.net>
33 lines
847 B
C
33 lines
847 B
C
#ifndef _FS_CEPH_DEBUGFS_H
|
|
#define _FS_CEPH_DEBUGFS_H
|
|
|
|
#include "ceph_debug.h"
|
|
#include "types.h"
|
|
|
|
#define CEPH_DEFINE_SHOW_FUNC(name) \
|
|
static int name##_open(struct inode *inode, struct file *file) \
|
|
{ \
|
|
struct seq_file *sf; \
|
|
int ret; \
|
|
\
|
|
ret = single_open(file, name, NULL); \
|
|
sf = file->private_data; \
|
|
sf->private = inode->i_private; \
|
|
return ret; \
|
|
} \
|
|
\
|
|
static const struct file_operations name##_fops = { \
|
|
.open = name##_open, \
|
|
.read = seq_read, \
|
|
.llseek = seq_lseek, \
|
|
.release = single_release, \
|
|
};
|
|
|
|
/* debugfs.c */
|
|
extern int ceph_debugfs_init(void);
|
|
extern void ceph_debugfs_cleanup(void);
|
|
extern int ceph_debugfs_client_init(struct ceph_client *client);
|
|
extern void ceph_debugfs_client_cleanup(struct ceph_client *client);
|
|
|
|
#endif
|
|
|