Assert in xfs_repair (Phase 7) and other xfs_restore problems

Jon Peatfield J.S.Peatfield at damtp.cam.ac.uk
Mon Jul 23 12:47:43 CDT 2012


Just askign the last question again in case the earlier summary data put 
people off reading it...


On Fri, 20 Jul 2012, Jon Peatfield wrote:
...
> Anyway all of the later runs now end with:
>
> ...
> disconnected dir inode 3892327224, moving to lost+found
> disconnected dir inode 3892327225, moving to lost+found
> disconnected dir inode 3892327226, moving to lost+found
> disconnected dir inode 3892327227, moving to lost+found
> disconnected dir inode 3892327229, moving to lost+found
> disconnected dir inode 3892327231, moving to lost+found
> Phase 7 - verify and correct link counts...
> resetting inode 256 nlinks from 8 to 5
> resetting inode 261 nlinks from 2 to 13006001
> xfs_repair: phase7.c:47: set_nlinks: Assertion `fs_inode_nlink' failed.
>
>
> Now in phase7.c it asserts if nlinks is over 65536 which 13006001 clearly is:
>
>            do_warn(_("resetting inode %" PRIu64 " nlinks from %u to %u\n"),
>                    ino, dinoc->di_nlink, nrefs);
>
>            if (dinoc->di_version == 1 && nrefs > XFS_MAXLINK_1)  {
>                    ASSERT(fs_inode_nlink);
>                    do_warn(
> _("nlinks %u will overflow v1 ino, ino %" PRIu64 " will be converted to 
> version 2\n"),
>                            nrefs, ino);
>
>            }
>            dinoc->di_nlink = nrefs;

...
> Have I completely destroyed this filesystem or is there any hope of getting 
> any of the files back ? (all the error messages I have seen were about 
> problems with the directories so some or all of the files and structures may 
> still be present)...
>
> If it is destroyed (it only contained backup trees so I can live with it 
> being lost), what should I have done differently?  ie what was my first 
> mistake ?
>
> I'm hoping to at least learn something from what went wrong.
...

So can I get xfs_repair to either put the ~13M disconnected files into 
lost+found or somewhere else ?  Does it matter that lost+found does not 
already exist?

  -- Jon



More information about the xfs mailing list