Subject: Re: tmpfs panic
To: None <current-users@netbsd.org>
From: Antti Kantee <pooka@cs.hut.fi>
List: current-users
Date: 11/22/2007 22:49:44
On Thu Nov 22 2007 at 21:40:57 +0100, S.P.Zeidler wrote:
> Hi,
> 
> yesterdays -current (amd64) told me today:
> 
> panic: kernel diagnostic assertion "page != NULL" failed: file
> "/chroots/current-src/src/sys/fs/tmpfs/tmpfs_pool.c", line 168
> Stopped in pid 3079.1 (pax) at  netbsd:breakpoint+0x1:  ret
> db{3}> bt
> breakpoint() at netbsd:breakpoint+0x1
> __kernassert() at netbsd:__kernassert+0x2d
> tmpfs_pool_page_alloc() at netbsd:tmpfs_pool_page_alloc+0xad
> pool_grow() at netbsd:pool_grow+0x36
> pool_get() at netbsd:pool_get+0x6e
> tmpfs_alloc_dirent() at netbsd:tmpfs_alloc_dirent+0x3c
> tmpfs_alloc_file() at netbsd:tmpfs_alloc_file+0x232
> VOP_CREATE() at netbsd:VOP_CREATE+0x4d
> vn_open() at netbsd:vn_open+0x39a
> sys_open() at netbsd:sys_open+0xec
> syscall() at netbsd:syscall+0x194

    nde = (struct tmpfs_dirent *)TMPFS_POOL_GET(&tmp->tm_dirent_pool, 0);

where:

    #define TMPFS_POOL_GET(tpp, flags) pool_get((struct pool *)(tpp), flags)

Those should definitely get called with PR_WAITOK.

-- 
Antti Kantee <pooka@iki.fi>                     Of course he runs NetBSD
http://www.iki.fi/pooka/                          http://www.NetBSD.org/
    "la qualité la plus indispensable du cuisinier est l'exactitude"