On 07/29, Christian Brauner wrote: > > On Sun, Jul 28, 2024 at 03:41:01PM GMT, Oleg Nesterov wrote: > > > > So in this case thaw_super_locked() just clears sb->s_writers.frozen and > > goes to the "out_deactivate" label bypassing sb_freeze_unlock(). ... > So that would mean freeze_super() would've indeed acquired > percpu_down_write(SB_FREEZE_WRITE+SB_FREEZE_PAGEFAULT+SB_FREEZE_FS) but > thaw_super() would skip calling > sb_freeze_unlock(SB_FREEZE_FS+SB_FREEZE_PAGEFAULT+SB_FREEZE_WRITE) and > destroying the superblock during umount with an imbalance that gets > noticed in rcu_sync_dtor(). > > So afaict this would mean that we never called rcu_sync_exit() and thus > never set GP_EXIT and notice that imbalance during rcu_sync_dtor(). Yes, yes, this is what I meant. Oleg.