ceph: include link to bdi in debugfs
[linux-3.10.git] / fs / ceph / super.h
index cfd39ef..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)
@@ -524,7 +529,7 @@ static inline int __ceph_caps_dirty(struct ceph_inode_info *ci)
 {
        return ci->i_dirty_caps | ci->i_flushing_caps;
 }
-extern int __ceph_mark_dirty_caps(struct ceph_inode_info *ci, int mask);
+extern void __ceph_mark_dirty_caps(struct ceph_inode_info *ci, int mask);
 
 extern int ceph_caps_revoking(struct ceph_inode_info *ci, int mask);
 extern int __ceph_caps_used(struct ceph_inode_info *ci);
@@ -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"
@@ -814,8 +820,8 @@ extern void __ceph_flush_snaps(struct ceph_inode_info *ci,
                               struct ceph_mds_session **psession);
 extern void ceph_check_caps(struct ceph_inode_info *ci, int flags,
                            struct ceph_mds_session *session);
-extern void ceph_check_delayed_caps(struct ceph_mds_client *mdsc,
-                                   int flushdirty);
+extern void ceph_check_delayed_caps(struct ceph_mds_client *mdsc);
+extern void ceph_flush_dirty_caps(struct ceph_mds_client *mdsc);
 
 extern int ceph_encode_inode_release(void **p, struct inode *inode,
                                     int mds, int drop, int unless, int force);