>> + if (fix_problem(ctx, PR_1_ATTR_HASH, pctx)) >> + goto clear_extattr; > > Shouldn't this be "if (!fix_problem(...))" ? Unfortunately here "fix" means clearing all entries so it is as intended. This is the way it was before, I haven't changed the logic. >> -#define PR_1_ATTR_SET_EA_INODE_FL 0x010086 >> +#define PR_1_ATTR_SET_EA_INODE_FL 0x010085 > > It would also be OK to keep the old values, and just skip 0x10084. Done. >> + err = ext2fs_read_inode(handle->fs, handle->ino, >> + &parent); > > Rather than reading the inode again here, it would make more sense to pass the > parent inode from the caller. Done.