ceph: show tasks waiting on caps in debugfs caps file
Add some visibility of tasks that are waiting for caps to the "caps" debugfs file. Display the tgid of the waiting task, inode number, and the caps the task needs and wants. Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:

committed by
Ilya Dryomov

parent
ad8c28a9eb
commit
3a3430affc
@@ -139,6 +139,7 @@ static int caps_show(struct seq_file *s, void *p)
|
||||
struct ceph_fs_client *fsc = s->private;
|
||||
struct ceph_mds_client *mdsc = fsc->mdsc;
|
||||
int total, avail, used, reserved, min, i;
|
||||
struct cap_wait *cw;
|
||||
|
||||
ceph_reservation_status(fsc, &total, &avail, &used, &reserved, &min);
|
||||
seq_printf(s, "total\t\t%d\n"
|
||||
@@ -166,6 +167,18 @@ static int caps_show(struct seq_file *s, void *p)
|
||||
}
|
||||
mutex_unlock(&mdsc->mutex);
|
||||
|
||||
seq_printf(s, "\n\nWaiters:\n--------\n");
|
||||
seq_printf(s, "tgid ino need want\n");
|
||||
seq_printf(s, "-----------------------------------------------------\n");
|
||||
|
||||
spin_lock(&mdsc->caps_list_lock);
|
||||
list_for_each_entry(cw, &mdsc->cap_wait_list, list) {
|
||||
seq_printf(s, "%-13d0x%-17lx%-17s%-17s\n", cw->tgid, cw->ino,
|
||||
ceph_cap_string(cw->need),
|
||||
ceph_cap_string(cw->want));
|
||||
}
|
||||
spin_unlock(&mdsc->caps_list_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user