[Lustre-discuss] Inode xxxxxx has a extra size (144) which is invalid
Andreas Dilger
andreas.dilger at oracle.com
Tue Nov 2 12:17:45 PDT 2010
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 invalid
Is 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.
More information about the lustre-discuss
mailing list