On Tue, 22 Mar 2011, Al Viro wrote: > On Tue, Mar 22, 2011 at 07:58:17PM +0100, Miklos Szeredi wrote: > > On Tue, 22 Mar 2011, Linus Torvalds wrote: > > > On Tue, Mar 22, 2011 at 11:39 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > > > > > > > Locking analysis would be really nice; AFAICS, it violates locking order > > > > when called from e.g. ->setattr() > > > > Locking order is always: > > > > -> overlayfs locks > > -> upper fs locks > > -> lower fs locks > > > > So it's really pretty simple and easy to validate. > > In which *order* on the upper fs? In copy up it does: -> lock parent on upper -> lock child on upper So a setattr with copy up would go like this: -> lock child on overlayfs -> lock parent on upper ->lock child on upper -> lock child on upper > > Protection is exactly as for userspace callers. AFAICT. > > Pardon? You traverse the chain of ancestors; fine, but who says it stays > anywhere near being relevant as you go? Not quite sure I understand. There are no assumptions about locks in overlayfs keeping anything relevant in upper/lower fs. Everything is re-checked and re-locked on the upper layer before proceeding with the rename. 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