[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic in dqflush
%rdx is the base, and 8*%rax is the index; to that, 0x80 is added.
I'm a bit too lazy to calculate the byte offset where um_quotas lives
in struct ufsmount
I just remembered the trick ws@ told me to calculate this quickly:
(gdb) print &((struct ufsmount *)0)->um_quotas
$1 = (struct vnode *(*)) 0x80
(gdb) print &((struct dquot *)0)->dq_ump
$2 = (struct ufsmount **) 0x30
(gdb) print &((struct dquot *)0)->dq_type
$3 = (u_int16_t *) 0x22
I'd put some Poor Man's Debugging panic()'s in dqflush, checking
dq is NULL, then dq_ump.
I don't know of a way to reproduce the panic.
Also, that's the central file server (luckily it paniced on a sunday
so I'm not in a mood to make it panic.
It appears to me that dq is in rcx (which is non-null), and dq-
and rdx is null.
So we have an active dquot structure with a NULL mount.
I guess I'll have a look at the source code.
Main Index |
Thread Index |