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
> --

Reply via email to