Re: [PATCH] cowlinks v2

Pavel Machek
2004-04-05T08:23:19Z

Hi!

> > > > > Could you not change it back to a normal inode when refcount becomes 1?
> > > >
> > > > You can only do that if the cowid object has a pointer to the last
> > > > remaining reference to it. That's possible, but more complicated and
> > > > would incur a little more I/O per cow operation.
> > >
> > > You'd have to have pointers to all references to it... because you
> > > can't tell in advance which one will be the last to go away.
> >
> > Exactly. Each of the cow pointers would need to be linked in a doubly
> > linked list containing them all.
>
> I don't like the list idea. Having the extra cowid (I prefer inode)
> indirection costs a few bytes and one lookup, not much. The list is
> way too much overhead to get rid of so little in a few cases.

Nobody likes the "list idea".

> If you really want to, create a new syscall foldfile() that will
> remove the indirection for one file, if possible. Then userspace can
> do the ugly work of scanning for single-linked cowids (or just leave
> it).

We could automaticaly remove them when we see them, or on first open(
O_RDWR) or something, or just leave them alone. Definitely leave them
alone for first version.
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]