Whamcloud - gitweb
LU-5319 tests: testcases for multiple modify RPCs feature
[fs/lustre-release.git] / lustre / obdclass / lprocfs_status_server.c
index 5e30671..86e03ff 100644 (file)
@@ -44,7 +44,7 @@
 
 int lprocfs_evict_client_open(struct inode *inode, struct file *f)
 {
-       struct obd_device *obd = PDE_DATA(f->f_dentry->d_inode);
+       struct obd_device *obd = PDE_DATA(f->f_path.dentry->d_inode);
 
        atomic_inc(&obd->obd_evict_inprogress);
        return 0;
@@ -52,7 +52,7 @@ int lprocfs_evict_client_open(struct inode *inode, struct file *f)
 
 int lprocfs_evict_client_release(struct inode *inode, struct file *f)
 {
-       struct obd_device *obd = PDE_DATA(f->f_dentry->d_inode);
+       struct obd_device *obd = PDE_DATA(f->f_path.dentry->d_inode);
 
        atomic_dec(&obd->obd_evict_inprogress);
        wake_up(&obd->obd_evict_inprogress_waitq);
@@ -137,7 +137,7 @@ static void lprocfs_free_client_stats(struct nid_stat *client_stat)
 
 void lprocfs_free_per_client_stats(struct obd_device *obd)
 {
-       cfs_hash_t *hash = obd->obd_nid_stats_hash;
+       struct cfs_hash *hash = obd->obd_nid_stats_hash;
        struct nid_stat *stat;
        ENTRY;
 
@@ -154,8 +154,9 @@ void lprocfs_free_per_client_stats(struct obd_device *obd)
 }
 EXPORT_SYMBOL(lprocfs_free_per_client_stats);
 
-static int lprocfs_exp_print_uuid_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd,
-                                     struct hlist_node *hnode, void *cb_data)
+static int
+lprocfs_exp_print_uuid_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd,
+                          struct hlist_node *hnode, void *cb_data)
 {
        struct seq_file *m = cb_data;
        struct obd_export *exp = cfs_hash_object(hs, hnode);
@@ -165,8 +166,9 @@ static int lprocfs_exp_print_uuid_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd,
        return 0;
 }
 
-static int lprocfs_exp_print_nodemap_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd,
-                                       struct hlist_node *hnode, void *cb_data)
+static int
+lprocfs_exp_print_nodemap_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd,
+                             struct hlist_node *hnode, void *cb_data)
 {
        struct seq_file *m = cb_data;
        struct obd_export *exp = cfs_hash_object(hs, hnode);
@@ -177,7 +179,8 @@ static int lprocfs_exp_print_nodemap_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd,
        return 0;
 }
 
-static int lprocfs_exp_nodemap_seq_show(struct seq_file *m, void *data)
+static int
+lprocfs_exp_nodemap_seq_show(struct seq_file *m, void *data)
 {
        struct nid_stat *stats = m->private;
        struct obd_device *obd = stats->nid_obd;
@@ -199,8 +202,9 @@ static int lprocfs_exp_uuid_seq_show(struct seq_file *m, void *data)
 }
 LPROC_SEQ_FOPS_RO(lprocfs_exp_uuid);
 
-static int lprocfs_exp_print_hash_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd,
-                                     struct hlist_node *hnode, void *cb_data)
+static int
+lprocfs_exp_print_hash_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd,
+                          struct hlist_node *hnode, void *cb_data)
 
 {
        struct seq_file *m = cb_data;
@@ -224,6 +228,36 @@ static int lprocfs_exp_hash_seq_show(struct seq_file *m, void *data)
 }
 LPROC_SEQ_FOPS_RO(lprocfs_exp_hash);
 
+int lprocfs_exp_print_replydata_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd,
+                                   struct hlist_node *hnode, void *cb_data)
+
+{
+       struct obd_export *exp = cfs_hash_object(hs, hnode);
+       struct seq_file *m = cb_data;
+       struct tg_export_data *ted = &exp->exp_target_data;
+
+       seq_printf(m, "reply_cnt: %d\n"
+                     "reply_max: %d\n"
+                     "reply_released_by_xid: %d\n"
+                     "reply_released_by_tag: %d\n\n",
+                  ted->ted_reply_cnt,
+                  ted->ted_reply_max,
+                  ted->ted_release_xid,
+                  ted->ted_release_tag);
+       return 0;
+}
+
+int lprocfs_exp_replydata_seq_show(struct seq_file *m, void *data)
+{
+       struct nid_stat *stats = m->private;
+       struct obd_device *obd = stats->nid_obd;
+
+       cfs_hash_for_each_key(obd->obd_nid_hash, &stats->nid,
+                               lprocfs_exp_print_replydata_seq, m);
+       return 0;
+}
+LPROC_SEQ_FOPS_RO(lprocfs_exp_replydata);
+
 int lprocfs_nid_stats_clear_seq_show(struct seq_file *m, void *data)
 {
        return seq_printf(m, "%s\n", "Write into this file to clear all nid "
@@ -369,6 +403,15 @@ int lprocfs_exp_setup(struct obd_export *exp, lnet_nid_t *nid)
                GOTO(destroy_new_ns, rc);
        }
 
+       entry = lprocfs_add_simple(new_stat->nid_proc, "reply_data", new_stat,
+                                  &lprocfs_exp_replydata_fops);
+       if (IS_ERR(entry)) {
+               rc = PTR_ERR(entry);
+               CWARN("%s: Error adding the reply_data file: rc = %d\n",
+                     obd->obd_name, rc);
+               GOTO(destroy_new_ns, rc);
+       }
+
        spin_lock(&exp->exp_lock);
        exp->exp_nid_stats = new_stat;
        spin_unlock(&exp->exp_lock);
@@ -432,8 +475,6 @@ void lprocfs_init_ops_stats(int num_private_stats, struct lprocfs_stats *stats)
        LPROCFS_OBD_OP_INIT(num_private_stats, stats, fid_alloc);
        LPROCFS_OBD_OP_INIT(num_private_stats, stats, statfs);
        LPROCFS_OBD_OP_INIT(num_private_stats, stats, statfs_async);
-       LPROCFS_OBD_OP_INIT(num_private_stats, stats, packmd);
-       LPROCFS_OBD_OP_INIT(num_private_stats, stats, unpackmd);
        LPROCFS_OBD_OP_INIT(num_private_stats, stats, create);
        LPROCFS_OBD_OP_INIT(num_private_stats, stats, destroy);
        LPROCFS_OBD_OP_INIT(num_private_stats, stats, setattr);