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@xxxxxxxxxxx> <20020507160157.M18743@xxxxxxxxxxx> <3CD7E4E5.2070008@xxxxxxx> <20020507170347.O18743@xxxxxxxxxxx>
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>