On Thu, Jul 25, 2019 at 07:04:28PM +0100, Al Viro wrote:
On Thu, Jul 25, 2019 at 09:32:13AM -0700, Linus Torvalds wrote:
> On Thu, Jul 25, 2019 at 6:26 AM Cyril Hrubis <chrubis(a)suse.cz> wrote:
> > This looks like mkfs.vfat got EBUSY after the loop device was
> > succesfully umounted.
> Hmm. Smells like the RCU-delaying got triggered again.
> We have that "synchronize_rcu_expedited()" in namespace_unlock(),
> which is so that everything should be done by the time we return to
> user space.
> Al, maybe that RCU synchronization should be after the mntput()s?
There are several interesting issues in there, but synchronize_rcu()
should be between zeroing ->mnt_ns and dropping the final refs.
I'm digging through that crap right now; at least one bug is dealt
with by #fixes, but there's more, unfortunately.
No, it's not synchronize_rcu(). It's a bug dealt with in vfs.git #fixes,
triggering the struct mount leak in mount_subtree(), which is used
by btrfs. Immediately prior to vfat in their list...
(oh, and AFAICS "more" in the above had been a mismerge in -next, so
it might really be all there is to it)
Folks, see if vfs.git #fixes solves that one.