On Fri, Mar 6, 2020 at 9:45 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > On Fri, Mar 06, 2020 at 08:38:44PM +0000, Al Viro wrote: > > On Fri, Mar 06, 2020 at 08:37:05PM +0000, Al Viro wrote: > > > > > You are misreading mntput_no_expire(), BTW - your get_mount() can > > > bloody well race with umount(2), hitting the moment when we are done > > > figuring out whether it's busy but hadn't cleaned ->mnt_ns (let alone > > > set MNT_DOOMED) yet. If somebody calls umount(2) on a filesystem that > > > is not mounted anywhere else, they are not supposed to see the sucker > > > return 0 until the filesystem is shut down. You break that. Ah, good point. > > > > While we are at it, d_alloc_parallel() requires i_rwsem on parent held > > at least shared. Okay. > Egads... Let me see if I got it right - you are providing procfs symlinks > to objects on the internal mount of that thing. And those objects happen > to be directories, so one can get to their parent that way. Or am I misreading > that thing? Yes. Thanks, Miklos