Subject: Re: CVS commit: src/sys/miscfs/genfs
To: None <reinoud@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: source-changes
Date: 11/30/2005 11:37:06
> > > Learn genfs that (struct buf *)->b_lblkno allways need to point to the
> > > logical block number of the file instead of allways zero.
> > 
> > for what is it necessary?
> 
> buffers passed from bread()/bwrite() have this field set up correctly 
> whereas genfs just bluntly sets it to zero.

the current convention for VOP_STRATEGY is
	- do BMAP by itself if b_lblkno == b_blkno.
	- otherwise use b_blkno.
so i don't think there is a problem with setting it to zero.

> Note that there are other problems currently with buffer passing to 
> strategy, see my PR # "kern/32193: vop_strategy gets broken struct buf's 
> passed by genfs/bread, possible memory leakage"

i replied to the PR.

> For filingsystems that rely/want to do 1:1 mapping in bmap, its a PITA that 
> suddenly the b_lblknr gets cleared and in one routine they have to manually 
> correct this.

"1:1 mapping" means "always lblkno == blkno" like nfs?
why can't you follow what nfs does?

YAMAMOTO Takashi