XFS internal error xfs_da_do_buf(1) at line 1992 of file fs/xfs/xfs_da_btree.c

Eric Sandeen sandeen at sandeen.net
Thu Oct 22 09:26:54 CDT 2009


Amit Sahrawat wrote:
> Hi Eric,
> 
> This seems related with the directory Inodes.
> 
> I tried the changes mentioned in the patch, they didn't work for me.
> As mine seems to be ARM with EABI.

The other one you might check on is:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=94a3f78566ef98a48814d82892f28bb741624cb8

Other than that, if you can try a newer kernel that'd be great, and if 
the problem remains, let me know what the testcase is and I can try it out.

-Eric

> When files are created at the Root . It reports Root Inode :128 at the 
> crash with bno:2
> 
> While suppose if another directory is created and Inode is 137
> And then, rm -rf * in that directory
> Crash would report error With this inode
> 
> xfs_da_do_buf: bno 8388631
> dir: inode 137
> Filesystem "sda4": XFS internal error xfs_da_do_buf(1) at line 1992 of 
> file fs/x
> fs/xfs_da_btree.c.  Caller 0xc0118eb8
> ry
> rm: unable [<c0022618>] (dump_stack+0x0/0x14) from [<c0125700>] 
> (xfs_error_repor
> t+0x54/0x64)
> [<c01256ac>] (xfs_error_report+0x0/0x64) from [<c0118a74>] 
> (xfs_da_do_buf+0x334/
> 0x6ec)
> [<c0118740>] (xfs_da_do_buf+0x0/0x6ec) from [<c0118eb8>] 
> (xfs_da_read_buf+0x34/0
> x3c)
> [<c0118e84>] (xfs_da_read_buf+0x0/0x3c) from [<c011b5c8>] 
> (xfs_da_node_lookup_in
> t+0x70/0x318)
> [<c011b558>] (xfs_da_node_lookup_int+0x0/0x318) from [<c01219d4>] 
> (xfs_dir2_node
> _removename+0x48/0x500)
> [<c012198c>] (xfs_dir2_node_removename+0x0/0x500) from [<c011c334>] 
> (xfs_dir_rem
> ovename+0x100/0x10c)
> [<c011c234>] (xfs_dir_removename+0x0/0x10c) from [<c014cde4>] 
> (xfs_remove+0x280/
> 0x424)
>  r6 = 00000000  r5 = 00000000  r4 = 00003951
> [<c014cb64>] (xfs_remove+0x0/0x424) from [<c0157044>] 
> (xfs_vn_unlink+0x30/0x60)
> [<c0157014>] (xfs_vn_unlink+0x0/0x60) from [<c009175c>] 
> (vfs_unlink+0x70/0xac)
>  r7 = C471C000  r6 = C43BF598  r5 = C395B3B8  r4 = 00000000
> [<c00916ec>] (vfs_unlink+0x0/0xac) from [<c0093ac0>] 
> (do_unlinkat+0xcc/0x14c)
>  r6 = C3968AD8  r5 = C395B3B8  r4 = 00000000
> [<c00939f4>] (do_unlinkat+0x0/0x14c) from [<c0093b58>] 
> (sys_unlink+0x18/0x1c)
>  r7 = 0000000A  r6 = 0000000C  r5 = 00000008  r4 = BEDCBC19
> [<c0093b40>] (sys_unlink+0x0/0x1c) from [<c001de40>] 
> (ret_fast_syscall+0x0/0x2c)
> to remove `5826'xfs_da_do_buf: bno 8388631
> dir: inode 137
> 
> Checking this through xfs_check will show:
> ]# xfs_check /dev/sdb4
> dir 128 block 8388609 extra leaf entry d5830 402
> dir 128 block 8388609 extra leaf entry d5831 404
> dir 128 block 8388609 extra leaf entry d5832 406
> dir 128 block 8388609 extra leaf entry d5833 408
> dir 128 block 8388609 extra leaf entry d5834 40a
> dir 128 block 8388609 extra leaf entry d5835 40c
> dir 128 block 8388609 extra leaf entry d5836 40e
> dir 128 block 8388609 extra leaf entry d5837 410
> ...
> ...
> dir 128 block 8388609 extra leaf entry ddab2 5fa
> dir 128 block 8388609 extra leaf entry ddab3 5fc
> dir 128 block 8388609 extra leaf entry ddab4 5fe
> bad free block ent 1 is 65535 should be 0 for dir ino 128 block 16777216
> bad free block ent 2 is 0 should be 65535 for dir ino 128 block 16777216
> dir ino 128 missing leaf entry for d5a37/260
> dir ino 128 missing leaf entry for d5a38/262
> dir ino 128 missing leaf entry for d5a39/264
> ...
> ...
> 
> I tried checking the inode before and after corruption using xfs_db and 
> xfs_check
> When I create files and check using xfs_check, no corruption is showed 
> and also xfs_db shows correct results for the inode.
> While after the crash is observed, xfs_check show the errors I mentioned 
> above.
> Also, the values for Inode using xfs_db differ from the ones I get after 
> i do xfs_repair -L on the device.
> 
> 
> Can u get anything from the above mentioned log.
> 
> Thanks & Regards,
> Amit Sahrawat
> 
> 
> On Wed, Oct 21, 2009 at 11:14 PM, Eric Sandeen <sandeen at sandeen.net 
> <mailto:sandeen at sandeen.net>> wrote:
> 
>     Amit Sahrawat wrote:
>      > Thanks Eric,
>      >
>      > Yes, I am able to get this for the same Inode and Block number.
>      >
>      > xfs_check reports error for dir inode 128 missing leaf
>     entries..(exact
>      > string I m missing), will provide you the details.
>      >
>      > Using xfs_repair fixes the problem. But again the same operation
>     leads
>      > to the crash.
>      > Even on a freshly formatted disk, I get this error.
>      >
>      > Please let me know from where I can get this patch to try whether it
>      > fixes for me or not.
> 
> 
>     http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=ae23a5e87dbbf4657a82e1ff8ebc52ab50361c14
> 
>     -Eric
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs




More information about the xfs mailing list