Hi, I've been working on a problem whereby glock.c was causing a BUG panic because gl_revokes was non-zero when the glock is freed. To debug and fix this, I developed a series of patches, including some new instrumentation and trace points. Some of these patches are independent, so could be pushed (or rejected) independently of the others.
So this is my current patch collection. The patch that fixes the problem is "gfs2: add memory barriers to gfs2_glock_remove_revoke". Andreas expressed some concerns about some of the others. For example, he didn't like that the new "status" sysfs file was taking "try" locks, but if the lock is held, I don't know of a better way to do this. He also expressed a concern that the new file should be in debugfs rather than sysfs. I'm open to opinions. Regardless of where it is, the new debug file is a perfect candidate to include in sos reports. Bob Peterson Bob Peterson (8): gfs2: Don't ignore inode write errors during inode_go_sync gfs2: Allow lock_nolock mount to specify jid=X gfs2: add memory barriers to gfs2_glock_remove_revoke gfs2: Add new sysfs file for gfs2 status gfs2: print mapping->nrpages in glock dump for address space glocks gfs2: instrumentation wrt log_flush stuck gfs2: Add new trace point for glock ail management gfs2: introduce new gfs2_glock_assert_withdraw fs/gfs2/glock.c | 32 +++++++----- fs/gfs2/glock.h | 9 ++++ fs/gfs2/glops.c | 8 +-- fs/gfs2/log.c | 32 +++++++++--- fs/gfs2/log.h | 2 +- fs/gfs2/lops.c | 6 +-- fs/gfs2/ops_fstype.c | 2 +- fs/gfs2/sys.c | 113 +++++++++++++++++++++++++++++++++++++++++++ fs/gfs2/trace_gfs2.h | 61 +++++++++++++++++++++++ fs/gfs2/trans.c | 4 +- 10 files changed, 241 insertions(+), 28 deletions(-) -- 2.26.2