|
@@ -1552,13 +1552,11 @@ void gfs2_glock_thaw(struct gfs2_sbd *sdp)
|
|
|
glock_hash_walk(thaw_glock, sdp);
|
|
|
}
|
|
|
|
|
|
-static int dump_glock(struct seq_file *seq, struct gfs2_glock *gl)
|
|
|
+static void dump_glock(struct seq_file *seq, struct gfs2_glock *gl)
|
|
|
{
|
|
|
- int ret;
|
|
|
spin_lock(&gl->gl_spin);
|
|
|
- ret = gfs2_dump_glock(seq, gl);
|
|
|
+ gfs2_dump_glock(seq, gl);
|
|
|
spin_unlock(&gl->gl_spin);
|
|
|
- return ret;
|
|
|
}
|
|
|
|
|
|
static void dump_glock_func(struct gfs2_glock *gl)
|
|
@@ -1647,10 +1645,9 @@ static const char *hflags2str(char *buf, unsigned flags, unsigned long iflags)
|
|
|
* @seq: the seq_file struct
|
|
|
* @gh: the glock holder
|
|
|
*
|
|
|
- * Returns: 0 on success, -ENOBUFS when we run out of space
|
|
|
*/
|
|
|
|
|
|
-static int dump_holder(struct seq_file *seq, const struct gfs2_holder *gh)
|
|
|
+static void dump_holder(struct seq_file *seq, const struct gfs2_holder *gh)
|
|
|
{
|
|
|
struct task_struct *gh_owner = NULL;
|
|
|
char flags_buf[32];
|
|
@@ -1666,7 +1663,6 @@ static int dump_holder(struct seq_file *seq, const struct gfs2_holder *gh)
|
|
|
gh_owner ? gh_owner->comm : "(ended)",
|
|
|
(void *)gh->gh_ip);
|
|
|
rcu_read_unlock();
|
|
|
- return 0;
|
|
|
}
|
|
|
|
|
|
static const char *gflags2str(char *buf, const struct gfs2_glock *gl)
|
|
@@ -1721,16 +1717,14 @@ static const char *gflags2str(char *buf, const struct gfs2_glock *gl)
|
|
|
* example. The field's are n = number (id of the object), f = flags,
|
|
|
* t = type, s = state, r = refcount, e = error, p = pid.
|
|
|
*
|
|
|
- * Returns: 0 on success, -ENOBUFS when we run out of space
|
|
|
*/
|
|
|
|
|
|
-int gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
|
|
|
+void gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
|
|
|
{
|
|
|
const struct gfs2_glock_operations *glops = gl->gl_ops;
|
|
|
unsigned long long dtime;
|
|
|
const struct gfs2_holder *gh;
|
|
|
char gflags_buf[32];
|
|
|
- int error = 0;
|
|
|
|
|
|
dtime = jiffies - gl->gl_demote_time;
|
|
|
dtime *= 1000000/HZ; /* demote time in uSec */
|
|
@@ -1747,15 +1741,11 @@ int gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
|
|
|
atomic_read(&gl->gl_revokes),
|
|
|
(int)gl->gl_lockref.count, gl->gl_hold_time);
|
|
|
|
|
|
- list_for_each_entry(gh, &gl->gl_holders, gh_list) {
|
|
|
- error = dump_holder(seq, gh);
|
|
|
- if (error)
|
|
|
- goto out;
|
|
|
- }
|
|
|
+ list_for_each_entry(gh, &gl->gl_holders, gh_list)
|
|
|
+ dump_holder(seq, gh);
|
|
|
+
|
|
|
if (gl->gl_state != LM_ST_UNLOCKED && glops->go_dump)
|
|
|
- error = glops->go_dump(seq, gl);
|
|
|
-out:
|
|
|
- return error;
|
|
|
+ glops->go_dump(seq, gl);
|
|
|
}
|
|
|
|
|
|
static int gfs2_glstats_seq_show(struct seq_file *seq, void *iter_ptr)
|
|
@@ -1953,7 +1943,8 @@ static void gfs2_glock_seq_stop(struct seq_file *seq, void *iter_ptr)
|
|
|
|
|
|
static int gfs2_glock_seq_show(struct seq_file *seq, void *iter_ptr)
|
|
|
{
|
|
|
- return dump_glock(seq, iter_ptr);
|
|
|
+ dump_glock(seq, iter_ptr);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static void *gfs2_sbstats_seq_start(struct seq_file *seq, loff_t *pos)
|