[SSSD] Atomic |rename()| ... / was: Re: [PATCH] https://fedorahosted.org/sssd/ticket/2410
Jakub Hrozek
jhrozek at redhat.com
Thu Aug 28 14:18:50 UTC 2014
On Thu, Aug 28, 2014 at 09:13:38AM -0400, Roland Mainz wrote:
>
>
> ----- Original Message -----
> > From: "Jakub Hrozek" <jhrozek at redhat.com>
> > To: sssd-devel at lists.fedorahosted.org
> > Sent: Tuesday, August 26, 2014 2:01:57 PM
> > Subject: Re: [SSSD] Atomic |rename()| ... / was: Re: [PATCH] https://fedorahosted.org/sssd/ticket/2410
> >
> > On Tue, Aug 26, 2014 at 07:05:17AM -0400, Roland Mainz wrote:
> > > > I like your approach better and do not expect any issues since rename()
> > > > is expected to be atomic.
> > > >
> > > > Please find comments below.
> > >
> > > Erm... |rename(src, dest)| with |src| and |dest| in the same directory can
> > > be considered an atomic operation... beyond that you're up to the mercy of
> > > the filesystem implementation.
> >
> > As I found the hard way, see my other e-mail :-)
>
> Details, please. There is some discussion on the way to make a variant of|renameat()| with a flags field to provide an option to request a swap operation... and an |RENAMEAT_MUSTBE_ATOMIC| might fit in their neatly... :-)
What I meant is that when the ccache was created in /tmp by default,
which is a tmpfs mount on Fedora these days, rename failed with an error
message (errno=EXDEV, strerror=Cross-device link)
More information about the sssd-devel
mailing list