On Thu, Apr 16, 2015 at 4:43 PM, David Howells <dhowells@xxxxxxxxxx> wrote: > Convert ->d_inode to d_backing_inode() or d_is_xxx() when it is being used to > access an inode on a subordinate filesystem of an overlay - even if that > subordinate is itself an overlay. Why? What if foo is on another overlay and there's a copy-up between mutex_lock(d_backing_inode(foo)) and mutex_unlock(d_backing_inode(foo))? Copy-up is currently not serialized on lower inode's i_mutex in overlayfs, and I don't see why it would need to be. To be honest, I find any use of d_backing_inode() outside of LSM's highly dubious. And each of those need would need careful scrutiny. Why not start out simple and switch everything mindlessly to d_inode(), etc? Then add the infrastructure for d_backing_inode() to make it actually work, and e.g. convert selinux to use it. Keeping everything else unconverted will result in much less likelihood of something accidentally breaking, like the above. Thanks, Miklos -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html