Reviving the thread "kernel BUG at fs/gfs2/inode.h:64" from January [1]...

We finally hit the assertion in gfs2_add_inode_blocks() after it has
been fixed. Debug logging showed that in sweep_bh_for_rgrps():

blen = 1
isize_blks = 0

which is then used as follows:

__gfs2_free_blocks(ip, bstart, (u32)blen, meta);
(*btotal) += blen;
gfs2_add_inode_blocks(&ip->i_inode, -blen);

This confirms Tim's suspicion that i_blocks is already 0 at the
point we're trying to free a block.

Any ideas on how this situation may have occurred? The test case
power-cycles hosts so perhaps this is some form of corruption that
would be fixed by Bob's recovery patch series?

[1] https://www.redhat.com/archives/cluster-devel/2019-January/msg00007.html

Thanks,
-- 
Ross Lagerwall

Reply via email to