Christopher Walker
2010-Nov-02 16:54 UTC
[Lustre-discuss] Inode xxxxxx has a extra size (144) which is invalid
While running e2fsck on some OSTs that went down with a system crash, we''re getting a bunch (~50) of messages like: Inode 196837991 has a extra size (144) which is invalid These don''t get fixed with a e2fsck -fy -- any idea what this means and how I can get rid of them? Thanks very much, Chris
Andreas Dilger
2010-Nov-02 19:17 UTC
[Lustre-discuss] Inode xxxxxx has a extra size (144) which is invalid
On 2010-11-02, at 10:54, Christopher Walker wrote:> While running e2fsck on some OSTs that went down with a system crash, > we''re getting a bunch (~50) of messages like: > > Inode 196837991 has a extra size (144) which is invalidIs there a prompt to fix the problem at this point?> These don''t get fixed with a e2fsck -fy -- any idea what this means and > how I can get rid of them?Looking at the e2fsck::check_inode_extra_space(), it appears that this _should_ be fixed if the above error message is printed: if (inode->i_extra_isize && (inode->i_extra_isize < min || inode->i_extra_isize > max)) { e2fsck_mark_inode_bad(ctx, pctx->ino, BADNESS_NORMAL); if (!fix_problem(ctx, PR_1_EXTRA_ISIZE, pctx)) return; inode->i_extra_isize = ctx->want_extra_isize; e2fsck_write_inode_full(ctx, pctx->ino, pctx->inode, EXT2_INODE_SIZE(sb), "pass1"); return; } This depends a bit upon what your inode size is (should be 256 for an OST), and if s_want_extra_isize is set in the superblock (it probably shouldn''t be). You''re best off running e2fsck under gdb and setting a breakpoint at the above e2fsck_mark_inode_bad() line. The problem itself is not fatal, but it means that the extended attributes for those files will be stored in an external block. This isn''t a huge deal, since they are referenced only very rarely. Cheers, Andreas -- Andreas Dilger Lustre Technical Lead Oracle Corporation Canada Inc.