[GFS2] Fix a couple of refcount leaks.
recovery.c add a brelse to deal with gfs2_replay_read_block being called
twice on the same block.
add a dput to drop the ref count on the root inode.
This was causing lingering glocks and thus causing
a mount failure to hang.
Fix a endian conversion macro that was was swizzling
16bits when it should have been swizzling 32.
Signed-off-by: Russell Cattelan <cattelan@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index b6edf7c..a5e16e5 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -2167,7 +2167,9 @@
spin_lock(&gl->gl_spin);
- printk(KERN_INFO "Glock (%u, %llu)\n", gl->gl_name.ln_type,
+ printk(KERN_INFO "Glock 0x%p (%u, %llu)\n",
+ gl,
+ gl->gl_name.ln_type,
(unsigned long long)gl->gl_name.ln_number);
printk(KERN_INFO " gl_flags =");
for (x = 0; x < 32; x++)
@@ -2187,8 +2189,9 @@
printk(KERN_INFO " reclaim = %s\n",
(list_empty(&gl->gl_reclaim)) ? "no" : "yes");
if (gl->gl_aspace)
- printk(KERN_INFO " aspace = %lu\n",
- gl->gl_aspace->i_mapping->nrpages);
+ printk(KERN_INFO " aspace = 0x%p nrpages = %lu\n",
+ gl->gl_aspace,
+ gl->gl_aspace->i_mapping->nrpages);
else
printk(KERN_INFO " aspace = no\n");
printk(KERN_INFO " ail = %d\n", atomic_read(&gl->gl_ail_count));