Re: atomically swap two files

From: Dave Chinner
Date: Fri Nov 26 2010 - 09:19:22 EST


On Fri, Nov 26, 2010 at 11:47:52AM +0000, Pádraig Brady wrote:
> On 25/11/10 20:11, Frank A. Kingswood wrote:
> > Hi!
> >
> > Is it possible to swap two files in an atomic way, so that after the
> > syscall either the two files have exchanged names or neither has been
> > modified?
> >
> > I suspect that btrfs could do it, but I'm wondering about ext3/4.
>
> I don't think there is anything equivalent to exchangedata() on Linux
> http://developer.apple.com/library/mac/#DOCUMENTATION/Darwin/Reference/ManPages/man2/exchangedata.2.html

XFS can do that, though the interface is an ioctl (XFS_IOC_SWAPEXT)
whose parameters are closely tied to the functionality of the only
user: the online defragmenter (xfs_fsr). It would be pretty easy to
wire it up to such a syscall if one existed, though....

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/