Date: Fri, 30 Oct 2009 15:30:05 +0000 (UTC)
From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
Reply-To: gnats-bugs%NetBSD.org@localhost
To: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost,
6bone%6bone.informatik.uni-leipzig.de@localhost
Subject: Re: kern/42205: kernel panic at activated userquota
The following reply was made to PR kern/42205; it has been noted by GNATS.
From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost,
netbsd-bugs%NetBSD.org@localhost,
6bone%6bone.informatik.uni-leipzig.de@localhost
Subject: Re: kern/42205: kernel panic at activated userquota
Date: Fri, 30 Oct 2009 16:27:52 +0100
--QTprm0S8XgL7H0Dt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Fri, Oct 30, 2009 at 07:35:02AM +0000,
6bone%6bone.informatik.uni-leipzig.de@localhost wrote:
> Hello
>
> now a dump from the last panic:
>
> uvm_fault(0xffffffff80c7a620, 0x0, 1) -> e
> fatal page fault in supervisor mode
> trap type 6 code 0 rip ffffffff803e4863 cs 8 rflags 10246 cr2 70 cpl 0
> rsp fff0
> kernel: page fault trap, code=0
> Stopped in pid 0.61 (system) at netbsd:qsync+0x103: movq
> 0x70(%rdx,%rax,8
> ),%r14
> db{2}> trace
> qsync() at netbsd:qsync+0x103
> ffs_sync() at netbsd:ffs_sync+0x2eb
> VFS_SYNC() at netbsd:VFS_SYNC+0x33
> sync_fsync() at netbsd:sync_fsync+0x85
> VOP_FSYNC() at netbsd:VOP_FSYNC+0x71
> sched_sync() at netbsd:sched_sync+0x15d
So it's still VOTI(vp) being NULL.
Can you install the attached patch ? When it runs on a null inode here
it will print the associated vnode (and hopefully avoid the panic :)
Please monitor console output or dmesg and when the vprint fires,
report it there.
--
Manuel Bouyer, LIP6, Universite Paris VI.
Manuel.Bouyer%lip6.fr@localhost
NetBSD: 26 ans d'experience feront toujours la difference
--
--QTprm0S8XgL7H0Dt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="quota.diff"
Index: ufs/ufs/ufs_quota.c
===================================================================
RCS file: /cvsroot/src/sys/ufs/ufs/ufs_quota.c,v
retrieving revision 1.60.10.3
diff -u -p -u -r1.60.10.3 ufs_quota.c
--- ufs/ufs/ufs_quota.c 7 Aug 2009 05:59:44 -0000 1.60.10.3
+++ ufs/ufs/ufs_quota.c 30 Oct 2009 15:27:13 -0000
@@ -743,6 +743,14 @@ qsync(struct mount *mp)
}
continue;
}
+ if (VTOI(vp) == NULL) {
+ vprint("qsync vp wihout ip", vp);
+ mutex_enter(&mntvnode_lock);
+ vunmark(mvp);
+ vlockmgr(vp->v_vnlock, LK_RELEASE);
+ vrele(vp);
+ goto again;
+ }
for (i = 0; i < MAXQUOTAS; i++) {
dq = VTOI(vp)->i_dquot[i];
if (dq == NODQUOT)
--QTprm0S8XgL7H0Dt--