Subject: Re: genfs_putpages with PGO_SYNCIO
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Chuck Silvers <chuq@chuq.com>
List: tech-kern
Date: 01/12/2003 14:18:11
hi,
I think there was some interaction with NFS related to this.
I don't remember for sure, though.
is there some particular reason you want to make this change,
or is it just on general principles?
-Chuck
On Sat, Jan 11, 2003 at 01:26:22AM +0900, YAMAMOTO Takashi wrote:
> hi,
>
> when genfs_putpages is called with PGO_SYNCIO,
> it passes the flag to GOP_WRITE as well. and GOP_WRITE do i/o synchronously.
> but it seems redundant to me because after that, genfs_putpages will wait
> for i/o completetion by itsself.
> is attached patch ok?
> thanks.
>
> YAMAMOTO Takashi
> Index: genfs_vnops.c
> ===================================================================
> RCS file: /cvs/NetBSD/src/sys/miscfs/genfs/genfs_vnops.c,v
> retrieving revision 1.68
> diff -u -p -r1.68 genfs_vnops.c
> --- genfs_vnops.c 2002/11/15 14:01:57 1.68
> +++ genfs_vnops.c 2003/01/10 16:14:58
> @@ -1281,7 +1291,12 @@ genfs_putpages(void *v)
> listq);
> }
> simple_unlock(slock);
> - error = GOP_WRITE(vp, pgs, npages, flags);
> + KASSERT(!wasclean);
> + /*
> + * no need to wait for PGO_SYNCIO here
> + * because we'll do so later.
> + */
> + error = GOP_WRITE(vp, pgs, npages, flags & ~PGO_SYNCIO);
> simple_lock(slock);
> if (by_list) {
> pg = TAILQ_NEXT(&curmp, listq);