Messages in this thread | | | Date | Fri, 23 Sep 2016 15:52:50 +0200 | From | Oleg Nesterov <> | Subject | Re: BUG_ON in rcu_sync_func triggered |
| |
On 09/23, Nikolay Borisov wrote: > > > --- a/fs/super.c > > +++ b/fs/super.c > > @@ -1344,7 +1344,9 @@ int thaw_super(struct super_block *sb) > > int error; > > > > down_write(&sb->s_umount); > > - if (sb->s_writers.frozen == SB_UNFROZEN) { > > + if (sb->s_writers.frozen != SB_FREEZE_COMPLETE) { > > + if (sb->s_writers.frozen != SB_UNFROZEN) > > + pr_crit("THAW: hit the race: %d\n", sb->s_writers.frozen); > > up_write(&sb->s_umount); > > return -EINVAL; > > } > > > > I was away on holiday so that's why I was silent. However, with this > patch applied I couldn't reproduce the issue nor the pr_crit > triggered.
Great, thanks a lot.
> Have you had any moments of epiphany re. this issue?
Well, after I failed to find any problem in rcu/sync.c I started to look at the callers and found this race.
> Should > some FS people be involved in the discussion?
Sure. I'll send the patch with CC's. Probably next week, I am too busy right now.
Thanks Nikolay,
Oleg.
| |