Subject: Re: Now: Fs suspension take 2
To: None <hannken@eis.cs.tu-bs.de>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 08/18/2006 19:26:29
> From here it goes down (with flags == PGO_CLEANIT|PGO_FREE) as
> 
>     uobj->pgops->pgo_put -> uvn_put -> VOP_PUTPAGES -> genfs_putpages
> 
> Here genfs_putpages is allowed to sleep because flags has PGO_CLEANIT.
> This would put uvmpd_scan_inactive() to sleep if there is a suspension on
> this vnode leading to out-of-memory deadlocks.
> 
> To avoid it we start a FSTRANS_NOWAIT transaction here.
> This way we will either succeed and have a valid transaction or
> we simply skip this page and try the next one.

you can do "if (pagedaemon)" in putpages.

YAMAMOTO Takashi