diff options
Diffstat (limited to 'fs/ceph/debugfs.c')
-rw-r--r-- | fs/ceph/debugfs.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/fs/ceph/debugfs.c b/fs/ceph/debugfs.c index 98365e74cb4a..777f6ceb5259 100644 --- a/fs/ceph/debugfs.c +++ b/fs/ceph/debugfs.c | |||
@@ -124,18 +124,48 @@ static int mdsc_show(struct seq_file *s, void *p) | |||
124 | return 0; | 124 | return 0; |
125 | } | 125 | } |
126 | 126 | ||
127 | static int caps_show_cb(struct inode *inode, struct ceph_cap *cap, void *p) | ||
128 | { | ||
129 | struct seq_file *s = p; | ||
130 | |||
131 | seq_printf(s, "0x%-17lx%-17s%-17s\n", inode->i_ino, | ||
132 | ceph_cap_string(cap->issued), | ||
133 | ceph_cap_string(cap->implemented)); | ||
134 | return 0; | ||
135 | } | ||
136 | |||
127 | static int caps_show(struct seq_file *s, void *p) | 137 | static int caps_show(struct seq_file *s, void *p) |
128 | { | 138 | { |
129 | struct ceph_fs_client *fsc = s->private; | 139 | struct ceph_fs_client *fsc = s->private; |
130 | int total, avail, used, reserved, min; | 140 | struct ceph_mds_client *mdsc = fsc->mdsc; |
141 | int total, avail, used, reserved, min, i; | ||
131 | 142 | ||
132 | ceph_reservation_status(fsc, &total, &avail, &used, &reserved, &min); | 143 | ceph_reservation_status(fsc, &total, &avail, &used, &reserved, &min); |
133 | seq_printf(s, "total\t\t%d\n" | 144 | seq_printf(s, "total\t\t%d\n" |
134 | "avail\t\t%d\n" | 145 | "avail\t\t%d\n" |
135 | "used\t\t%d\n" | 146 | "used\t\t%d\n" |
136 | "reserved\t%d\n" | 147 | "reserved\t%d\n" |
137 | "min\t%d\n", | 148 | "min\t\t%d\n\n", |
138 | total, avail, used, reserved, min); | 149 | total, avail, used, reserved, min); |
150 | seq_printf(s, "ino issued implemented\n"); | ||
151 | seq_printf(s, "-----------------------------------------------\n"); | ||
152 | |||
153 | mutex_lock(&mdsc->mutex); | ||
154 | for (i = 0; i < mdsc->max_sessions; i++) { | ||
155 | struct ceph_mds_session *session; | ||
156 | |||
157 | session = __ceph_lookup_mds_session(mdsc, i); | ||
158 | if (!session) | ||
159 | continue; | ||
160 | mutex_unlock(&mdsc->mutex); | ||
161 | mutex_lock(&session->s_mutex); | ||
162 | ceph_iterate_session_caps(session, caps_show_cb, s); | ||
163 | mutex_unlock(&session->s_mutex); | ||
164 | ceph_put_mds_session(session); | ||
165 | mutex_lock(&mdsc->mutex); | ||
166 | } | ||
167 | mutex_unlock(&mdsc->mutex); | ||
168 | |||
139 | return 0; | 169 | return 0; |
140 | } | 170 | } |
141 | 171 | ||