Re: [PATCH] cowlinks v2

Jörn Engel
2004-03-21T12:57:46Z

On Sat, 20 March 2004 08:48:43 -0800, Davide Libenzi wrote:
> On 20 Mar 2004, Patrick J. LoPresti wrote:
>
> > What happens if the disk fills while you are making the copy? Will
> > open(2) on an *existing file* then return ENOSPC?
> >
> > I do not think you can implement this without changing the interface
> > to open(2). Which means applications have to be made aware of it
> > anyway. Which means you might as well leave your implementation as-is
> > and let userspace worry about creating the copy (and dealing with the
> > resulting errors).
>
> FWIW I did this quite some time ago to speed up copy+diff linux kernel
> trees:
>
> http://www.xmailserver.org/flcow.html
>
> It is entirely userspace and uses LD_PRELOAD on my dev shell.

Nice work. I was thinking about something like that as an
intermediate solution (my goal is libc inclusion), just with slightly
different checks:

int ret = open(...);
if (ret == -EMLINK)
ret = cow_open(...);
return ret;

Jörn

--
He that composes himself is wiser than he that composes a book.
-- B. Franklin