xfs
[Top] [All Lists]

Re: xfs_repair trouble

To: Ragnar Kjørstad <xfs@xxxxxxxxxxxxxxxxxxx>
Subject: Re: xfs_repair trouble
From: Stephen Lord <lord@xxxxxxx>
Date: Tue, 07 May 2002 10:31:15 -0500
Cc: linux-xfs@xxxxxxxxxxx, kevin@xxxxxxxxxxxxxx
References: <20020507001545.G18743@vestdata.no> <20020507160157.M18743@vestdata.no> <3CD7E4E5.2070008@sgi.com> <20020507170347.O18743@vestdata.no>
Sender: owner-linux-xfs@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.7) Gecko/20011226
Ragnar Kjxrstad wrote:

On Tue, May 07, 2002 at 09:29:57AM -0500, Stephen Lord wrote:

Put it out of it's misery, it must be in some form of endless loop, there
also appears to be data corruption, that l_mp value is not supposed to
be NULL, it is supposed to be the first argument of zero_log. Once
this was gone, all bets are off.


It's not _endless_ as it's actually working it's way over the disk....

Is the xfs-log located at the beginning or the end of the filesystem?


The middle ;-)



I would say the problem originates higher up the process somewhere.
can you print out the contents of the mp argument of zero_log,
and dump the super block from the disk using xfs_db:


1: *mp = {m_sb = {sb_magicnum = 1481003842, sb_blocksize = 4096, sb_dblocks = 210098062, sb_rblocks = 0, sb_rextents = 0, sb_uuid = "$yOF?nNF\216>&8\212\021dz", sb_logstart = 104857604, sb_rootino = 128, sb_rbmino = 129, sb_rsumino = 130, sb_rextsize = 16, sb_agblocks = 1048576, sb_agcount = 201, sb_rbmblocks = 0, sb_logblocks = 25646, sb_versionnum = 8324, sb_sectsize = 512, sb_inodesize = 256, sb_inopblock = 16, sb_fname = '\000' <repeats 11 times>, sb_blocklog = 12 '\f', sb_sectlog = 9 '\t', sb_inodelog = 8 '\b', sb_inopblog = 4 '\004', sb_agblklog = 20 '\024', sb_rextslog = 0 '\000', sb_inprogress = 0 '\000', sb_imax_pct = 25 '\031', sb_icount = 64, sb_ifree = 60, sb_fdblocks = 210071608, sb_frextents = 0, sb_uquotino = 0, sb_gquotino = 0, sb_qflags = 0, sb_flags = 0 '\000', sb_shared_vn = 0 '\000', sb_inoalignmt = 2, sb_unit = 0, sb_width = 0, sb_dirblklog = 0 '\000', sb_dummy = "\000\000\000\000\000\000"}, m_bsize = 8, m_agfrotor = 0, m_agirotor = 0, m_maxagi = 201, m_rsumlevels = 0, m_rsumsize = 0, m_rbmip = 0x0, m_rsumip = 0x0, m_rootip = 0x0, m_dev = 2065, m_logdev = 0, m_rtdev = 0, m_dircook_elog = 0 '\000', m_blkbit_log = 15 '\017', m_blkbb_log = 3 '\003', m_agno_log = 8 '\b', m_agino_log = 24 '\030', m_inode_cluster_size = 8192, m_blockmask = 4095, m_blockwsize = 1024, m_blockwmask = 1023, m_alloc_mxr = { 510, 340}, m_alloc_mnr = {255, 170}, m_bmap_dmxr = {254, 254}, m_bmap_dmnr = {127, 127}, m_inobt_mxr = {255, 510}, m_inobt_mnr = {127, 255}, m_ag_maxlevels = 3, m_bm_maxlevels = {5, 3}, m_in_maxlevels = 3, m_perag = 0x80e49c0, m_flags = 0, m_qflags = 0, m_attroffset = 120, m_da_node_ents = 510, m_ialloc_inos = 64, m_ialloc_blks = 4, m_litino = 156, m_inoalign_mask = 1, m_reservations = {tr_write = 108216, tr_itruncate = 175032, tr_rename = 305976, tr_link = 152832, tr_remove = 153144, tr_symlink = 158520, tr_create = 157880, tr_mkdir = 157880, tr_ifree = 14520, tr_ichange = 1592, tr_growdata = 44160, tr_swrite = 384, tr_addafork = 69560, tr_writeid = 384, tr_attrinval = 174720, tr_attrset = 22456, tr_attrrm = 87992, tr_clearagi = 640, tr_growrtalloc = 65024, tr_growrtzero = 4224, tr_growrtfree = 5760}, m_maxicount = 840392192, m_dalign = 0, m_swidth = 0, m_sinoalign = 0, m_dir_magicpct = 1515, m_dirversion = 2 '\002', m_dirblksize = 4096, m_dirblkfsbs = 1, m_dirdatablk = 0, m_dirleafblk = 8388608, m_dirfreeblk = 16777216}

xfs_db -r /dev/xxxx
sb 0
p
quit


magicnum = 0x58465342 blocksize = 4096 dblocks = 210098062 rblocks = 0 rextents = 0 uuid = 24794f46-3f6e-4ec6-8e3e-26388a11e47a logstart = 104857604 rootino = 128 rbmino = 129 rsumino = 130 rextsize = 16 agblocks = 1048576 agcount = 201 rbmblocks = 0 logblocks = 25646 versionnum = 0x2084 sectsize = 512 inodesize = 256 inopblock = 16 fname = "\000\000\000\000\000\000\000\000\000\000\000\000" blocklog = 12 sectlog = 9 inodelog = 8 inopblog = 4 agblklog = 20 rextslog = 0 inprogress = 0 imax_pct = 25 icount = 64 ifree = 60 fdblocks = 210071608 frextents = 0 uquotino = 0 gquotino = 0 qflags = 0 flags = 0 shared_vn = 0 inoalignmt = 2 unit = 0 width = 0 dirblklog = 0


Is logstart the block-number of the first block used for the log, and logblocks the size of the log?



Yes, and those are the only blocks this code should look at, it seems to have
wandered off into never never land. Your mount structure looks reasonable.
We will look into your other message about error return values being wrong.


Steve




<Prev in Thread] Current Thread [Next in Thread>