On Tue, Dec 18, 2007 at 07:21:21AM +0530, sudheer wrote:
> Sir ,
>
> When i run tail -f /var/log/messages
> --------------------------------------------------------------
> Dec 17 20:50:42 u15200848 kernel: [<c014bb20>] pdflush+0x0/0x50
> Dec 17 20:50:42 u15200848 kernel: [<c014ba2c>] __pdflush+0xbc/0x1b0
> Dec 17 20:50:42 u15200848 kernel: [<c014bb5d>] pdflush+0x3d/0x50
> Dec 17 20:50:42 u15200848 kernel: [<c014afb0>] wb_kupdate+0x0/0x140
> Dec 17 20:50:42 u15200848 kernel: [<c0134fba>] kthread+0xba/0xc0
> Dec 17 20:50:42 u15200848 kernel: [<c0134f00>] kthread+0x0/0xc0
> Dec 17 20:50:42 u15200848 kernel: [<c0101255>]
> kernel_thread_helper+0x5/0x10
> Dec 17 20:50:42 u15200848 kernel: 0x0: 58 41 47 46 00 00 00 01 00 00 00 0a
> 00 18 c5 15
> Dec 17 20:50:42 u15200848 kernel: Filesystem "hda7": XFS internal error
> xfs_alloc_read_agf at line 2173 of file fs/xfs/xfs_alloc.c. Caller
That indicates a corrupted AGF. The magic number looks good:
#define XFS_AGF_MAGIC 0x58414746
so that leaves:
agf_ok =
be32_to_cpu(agf->agf_magicnum) == XFS_AGF_MAGIC &&
XFS_AGF_GOOD_VERSION(be32_to_cpu(agf->agf_versionnum)) &&
be32_to_cpu(agf->agf_freeblks) <= be32_to_cpu(agf->agf_length)
&&
be32_to_cpu(agf->agf_flfirst) < XFS_AGFL_SIZE(mp) &&
be32_to_cpu(agf->agf_fllast) < XFS_AGFL_SIZE(mp) &&
be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp);
Fromteh hex dump above I can see the version is also good, but nothing else.
You should run xfs_check on teh filesystem and report the output to us, then
run xfs_repair to correct the problem (also send us the output).
The output of the two programs might tell use what was wrong....
> Is this a problem with the xfs file system ? in the hda7 partition ?
Could be either - is you disk reporting errors? What does smart tell you?
> .How
> can i correct this on live server ?
unmount the filesystem, check it, repair it, mount it back up.
You can't fix it online.
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
|