On Thu, May 16, 2019 at 01:26:29PM +0300, Amir Goldstein wrote: > There is a common pattern among pseudo filesystems for removing a dentry > from code paths that are NOT coming from vfs_{unlink,rmdir}, using a > combination of simple_{unlink,rmdir} and d_delete(). > > Create an helper to perform this common operation. This helper is going > to be used as a place holder for the new fsnotify_{unlink,rmdir} hooks. This is the wrong approach. What we have is a bunch of places trying to implement recursive removal of a subtree. They are broken, each in its own way, and I'm not talking about fsnotify crap - there are much more unpleasant issues there. Trying to untangle that mess is not going to be made easier by mandating the calls of that helper of yours - if anything, it makes the whole thing harder to massage. It needs to be dealt with, no arguments here, but that's not a good starting point for that... I've taken several stabs at that, never got anywhere satisfactory with those ;-/ I'll try to dig out the notes/existing attempts at patch series; if you are willing to participate in discussing those and sorting the whole thing out, you are very welcome; just ping me in a couple of days.