Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760876AbYCAVCV (ORCPT ); Sat, 1 Mar 2008 16:02:21 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755236AbYCAVCJ (ORCPT ); Sat, 1 Mar 2008 16:02:09 -0500 Received: from sandeen.net ([209.173.210.139]:15336 "EHLO sandeen.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751298AbYCAVCH (ORCPT ); Sat, 1 Mar 2008 16:02:07 -0500 Message-ID: <47C9C44D.8080400@sandeen.net> Date: Sat, 01 Mar 2008 15:02:05 -0600 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.12 (Macintosh/20080213) MIME-Version: 1.0 To: =?ISO-8859-15?Q?Thomas_M=FCller?= CC: xfs@oss.sgi.com, linux-kernel@vger.kernel.org Subject: Re: Kernel oops / XFS filesystem corruption References: <47C93C32.40006@mathtm.de> In-Reply-To: <47C93C32.40006@mathtm.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2588 Lines: 72 Thomas M?ller wrote: > Hello :) > > My system just crashed because of a power fluctuation and the root > filesystem was damaged. > The system booted up just fine, but when samba tried to start up > the kernel oops'd. > > xfs_repair was apparently able to repair the damage, though I seem > to have lost some files. > > I do realize that a lot of awful things can happen if you just cut > the power, but the kernel shouldn't oops on a mounted file > system, right? right. here's the disassembly of that function in your kernrel FWIW: 0001012c : 1012c: 55 push %ebp 1012d: 57 push %edi 1012e: 56 push %esi 1012f: 53 push %ebx 10130: 89 c3 mov %eax,%ebx 10132: 83 ec 0c sub $0xc,%esp 10135: 8b 40 20 mov 0x20(%eax),%eax 10138: 8b 40 4c mov 0x4c(%eax),%eax 1013b: 8b 40 14 mov 0x14(%eax),%eax 1013e: 8d 78 04 lea 0x4(%eax),%edi 10141: 0f b6 40 02 movzbl 0x2(%eax),%eax <--- boom. 10145: c7 44 24 08 00 00 00 movl $0x0,0x8(%esp) 1014c: 00 1014d: 89 44 24 04 mov %eax,0x4(%esp) 10151: e9 96 00 00 00 jmp 101ec ... at this point eax is "sf" (0x0) and edi is "sfe" (0x04) Mar 1 10:32:03 linux kernel: eax: 00000000 ebx: f268cddc ecx: f8ae4d9d edx: 08d26645 Mar 1 10:32:03 linux kernel: esi: f04d1600 edi: 00000004 ebp: f8ae4d91 esp: f268cdbc first part of the function: int xfs_attr_shortform_getvalue(xfs_da_args_t *args) { xfs_attr_shortform_t *sf; xfs_attr_sf_entry_t *sfe; int i; ASSERT(args->dp->i_d.di_aformat == XFS_IFINLINE); sf = (xfs_attr_shortform_t *)args->dp->i_afp->if_u1.if_data; sfe = &sf->list[0]; for (i = 0; i < sf->hdr.count; <--- died here, sf is 0 sfe = XFS_ATTR_SF_NEXTENTRY(sfe), i++) { we blew up on sf->hdr.count because sf is NULL (hdr.count is 0x2 into sf) maybe the sgi guys can take it from there ;) Did you also happen to save the xfs_repair output? -Eric -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/