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.

Reply via email to