Re: New copyfile system call - discuss before LSF?

Myklebust, Trond
2013-03-31T18:27:38Z

On Sun, 2013-03-31 at 09:36 +0200, Pavel Machek wrote:
> Hi!
>
> > >>> Hmm, really? AFAICT it would be simple to provide an
> > >>> open_deleted_file("directory") syscall. You'd open_deleted_file(),
> > >>> copy source file into it, then fsync(), then link it into filesystem.
> > >>>
> > >>> That should have atomicity properties reflected.
> > >>
> > >> Actually, the open_deleted_file() syscall is quite useful for many
> > >> different things all by itself. Lots of applications need to create
> > >> temporary files that are unlinked at application failure (without a
> > >> race if app crashes after creating the file, but before unlinking).
> > >> It also avoids exposing temporary files into the namespace if other
> > >> applications are accessing the directory.
> > >
> > > Hmm. open_deleted_file() will still need to get a directory... so it
> > > will still need a path. Perhaps open("/foo/bar/mnt", O_DELETED) would
> > > be acceptable interface?
> >
> > ...and what's the big plan to make this work on anything other than ext4 and btrfs?
>
> Deleted but open files are from original unix, so it should work on
> anything unixy (minix, ext, ext2, ...).
> Pavel

minix, ext, ext2... are not under active development and haven't been
for more than a decade.

Take a look at how many actively used filesystems out there that have
some variant of sillyrename(), and explain what you want to do in those
cases.

--
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@netapp.com