hi, > On Mon, Jan 16, 2012 at 10:48:37PM +0000, YAMAMOTO Takashi wrote: >> hi, >> >> > On Mon, Jan 16, 2012 at 10:00:05PM +0000, YAMAMOTO Takashi wrote: >> >> have you considered to separate the entity being cached from vnode? >> > >> > What would this buy us ? the data are intimely tied to the inode, cleaning >> > the cache when a file is deleted or would be more difficult, isn't it ? >> >> it allows us to have more than one such entities for a vnode. >> it's what you want here, isn't it? > > I'm not sure I'm understanding you. There is only one set of extended > attributes blocks per vnode.
let's call the entity buf_targ_t. the most of vnode * for buffer cache API would be changed to take buf_targ_t * instead of vnode *. callers would be changed from bread(vp, ...) to bread(vp->v_contents_buf_targ, ...). you might want to do bread(ip->i_xattr_buf_targ, ...) for extended attribute. you need two buf_targ_t for a vnode. (v_contents_buf_targ and i_xattr_buf_targ in the above example.) YAMAMOTO Takashi > > -- > Manuel Bouyer <bou...@antioche.eu.org> > NetBSD: 26 ans d'experience feront toujours la difference > --