On Tue, May 05, 2009 at 02:01:36PM +0100, Jamie Lokier wrote: > Joel Becker wrote: > > Here's another fun trick. Overwriting rsync, instead of copying > > blocks from the already-existing source could reflink the source to the > > .temporary, then only write the changed blocks. And since you own both > > files, it just works. If you're overwriting someone else's file? The > > old copy behavior is fine. > > The moment rsync overwrites a single block, the whole reflink file > will be copied by the filesystem, and then rsync will overwrite other > blocks in the copy. This is not cowlink. It's not a "CoW the whole thing when I touch one block". It's a new file (new inode for most implementations) that just shares the data extents. So if I write to one block, I only need to CoW that one block. See my other email with the wiki pages. Joel -- "Maybe the time has drawn the faces I recall. But things in this life change very slowly, If they ever change at all." Joel Becker Principal Software Developer Oracle E-mail: joel.becker@xxxxxxxxxx Phone: (650) 506-8127 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html