Re: [PATCH 1/2] vfs: free vfsmount through rcu work from kern_unmount

From: Al Viro
Date: Fri Feb 18 2022 - 14:26:41 EST


On Fri, Feb 18, 2022 at 01:31:13PM -0500, Rik van Riel wrote:
> After kern_unmount returns, callers can no longer access the
> vfsmount structure. However, the vfsmount structure does need
> to be kept around until the end of the RCU grace period, to
> make sure other accesses have all gone away too.
>
> This can be accomplished by either gating each kern_unmount
> on synchronize_rcu (the comment in the code says it all), or
> by deferring the freeing until the next grace period, where
> it needs to be handled in a workqueue due to the locking in
> mntput_no_expire().

NAK. There's code that relies upon kern_unmount() being
synchronous. That's precisely the reason why MNT_INTERNAL
is treated that way in mntput_no_expire().