ceph: include link to bdi in debugfs
[linux-3.10.git] / fs / ceph / super.h
index 0bbf58a..2304bd2 100644 (file)
 #define CEPH_OPT_DEFAULT   (CEPH_OPT_RBYTES)
 
 #define ceph_set_opt(client, opt) \
-       (client)->mount_args.flags |= CEPH_OPT_##opt;
+       (client)->mount_args->flags |= CEPH_OPT_##opt;
 #define ceph_test_opt(client, opt) \
-       (!!((client)->mount_args.flags & CEPH_OPT_##opt))
+       (!!((client)->mount_args->flags & CEPH_OPT_##opt))
 
 
-#define CEPH_MAX_MON_MOUNT_ADDR        5
-
 struct ceph_mount_args {
        int sb_flags;
+       int num_mon;
+       struct ceph_entity_addr *mon_addr;
        int flags;
        int mount_timeout;
        int caps_wanted_delay_min, caps_wanted_delay_max;
@@ -61,6 +61,7 @@ struct ceph_mount_args {
        int max_readdir;      /* max readdir size */
        int osd_timeout;
        char *snapdir_name;   /* default ".snap" */
+       char *name;
        char *secret;
        int cap_release_safety;
 };
@@ -69,12 +70,13 @@ struct ceph_mount_args {
  * defaults
  */
 #define CEPH_MOUNT_TIMEOUT_DEFAULT  60
-#define CEPH_MOUNT_RSIZE_DEFAULT    (128*1024) /* readahead */
+#define CEPH_MOUNT_RSIZE_DEFAULT    (512*1024) /* readahead */
 
 #define CEPH_MSG_MAX_FRONT_LEN (16*1024*1024)
 #define CEPH_MSG_MAX_DATA_LEN  (16*1024*1024)
 
 #define CEPH_SNAPDIRNAME_DEFAULT ".snap"
+#define CEPH_AUTH_NAME_DEFAULT   "guest"
 
 /*
  * Delay telling the MDS we no longer want caps, in case we reopen
@@ -111,14 +113,11 @@ static inline unsigned long time_sub(unsigned long a, unsigned long b)
  * mounting the same ceph filesystem/cluster.
  */
 struct ceph_client {
-       __s64 whoami;                   /* my client number */
-       struct dentry *debugfs_monmap;
-       struct dentry *debugfs_mdsmap, *debugfs_osdmap;
-       struct dentry *debugfs_dir, *debugfs_dentry_lru, *debugfs_caps;
+       struct ceph_fsid fsid;
+       bool have_fsid;
 
        struct mutex mount_mutex;       /* serialize mount attempts */
-       struct ceph_mount_args mount_args;
-       struct ceph_fsid fsid;
+       struct ceph_mount_args *mount_args;
 
        struct super_block *sb;
 
@@ -126,8 +125,6 @@ struct ceph_client {
        wait_queue_head_t mount_wq;
 
        int mount_err;
-       void *signed_ticket;           /* our keys to the kingdom */
-       int signed_ticket_len;
 
        struct ceph_messenger *msgr;   /* messenger instance */
        struct ceph_mon_client monc;
@@ -141,6 +138,13 @@ struct ceph_client {
        struct workqueue_struct *trunc_wq;
 
        struct backing_dev_info backing_dev_info;
+
+#ifdef CONFIG_DEBUG_FS
+       struct dentry *debugfs_monmap;
+       struct dentry *debugfs_mdsmap, *debugfs_osdmap;
+       struct dentry *debugfs_dir, *debugfs_dentry_lru, *debugfs_caps;
+       struct dentry *debugfs_bdi;
+#endif
 };
 
 static inline struct ceph_client *ceph_client(struct super_block *sb)
@@ -169,7 +173,8 @@ struct ceph_cap {
        int issued;       /* latest, from the mds */
        int implemented;  /* implemented superset of issued (for revocation) */
        int mds_wanted;
-       u32 seq, issue_seq, mseq, gen;
+       u32 seq, issue_seq, mseq;
+       u32 cap_gen;      /* active/stale cycle */
        unsigned long last_used;
        struct list_head caps_item;
 };
@@ -364,7 +369,7 @@ struct ceph_inode_info {
 
 static inline struct ceph_inode_info *ceph_inode(struct inode *inode)
 {
-       return list_entry(inode, struct ceph_inode_info, vfs_inode);
+       return container_of(inode, struct ceph_inode_info, vfs_inode);
 }
 
 static inline void ceph_i_clear(struct inode *inode, unsigned mask)
@@ -730,6 +735,7 @@ extern struct kmem_cache *ceph_dentry_cachep;
 extern struct kmem_cache *ceph_file_cachep;
 
 extern const char *ceph_msg_type_name(int type);
+extern int ceph_check_fsid(struct ceph_client *client, struct ceph_fsid *fsid);
 
 #define FSID_FORMAT "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-" \
        "%02x%02x%02x%02x%02x%02x"