On Tue, Mar 19, 2013 at 2:38 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > On Mon, Mar 18, 2013 at 11:01:03PM +0000, Al Viro wrote: > >> I'm looking at the existing callers and I really wonder if we ought to >> push sb_start_write() from ->splice_write()/->aio_write()/etc. into the >> callers. >> >> Something like file_start_write()/file_end_write(), with check for file >> being regular one might be a good starting point. As it is, copyup is >> really fucked both in unionmount and overlayfs... > > BTW, I wonder what's the right locking for that sucker; overlayfs is probably > too heavy - we are talking about copying a file from one fs to another, which > can obviously take quite a while, so holding ->i_mutex on _parent_ all along > is asking for very serious contention. Copy up is a once-in-a-lifetime event for an object. Optimizing it is way down in the list of things to do. I'd drop splice in a jiffy if it's in the way. Much more interesting question: what happens if we crash during a rename? Whiteout implemented in the filesystem won't save us. And the results are interesting: old versions of files become visible and similar fun. Far from likely to happen, but ... Add a rename-with-whiteout primitive on filesystems? That one is not going to be as simple as plain whiteout. Or? Thanks, Miklos -- 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