Re: [PATCH V2 2/2] fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths

From: Dave Chinner
Date: Tue Sep 27 2016 - 03:14:29 EST


On Tue, Sep 27, 2016 at 08:51:35AM +0200, Jan Kara wrote:
> On Mon 26-09-16 18:55:25, Oleg Nesterov wrote:
> > On 09/26, Jan Kara wrote:
> > >
> > > On Mon 26-09-16 18:08:06, Oleg Nesterov wrote:
> > > > +/*
> > > > + * Tell lockdep we are holding these locks before we call ->unfreeze_fs(sb).
> > > > + */
> > > > +static void sb_freeze_acquire(struct super_block *sb)
> > >
> > > Can we call this lockdep_sb_freeze_acquire() or something like that so that
> > > it is clear this is only about lockdep annotations? Similarly with
> > > sb_freeze_unlock()...
> >
> > OK, thanks, done. See V2 below.
> >
> > > and I hope you really tested
> > > there are no more lockdep false positives ;).
> >
> > Heh ;) if only I knew how to test this... I ran the following script
> > under qemu
> >
> > mkfs.xfs -f /dev/vda
> > mkfs.xfs -f /dev/vdb
> >
> > mkdir -p TEST SCRATCH
> >
> > TEST_DEV=/dev/vda TEST_DIR=TEST SCRATCH_DEV=/dev/vdb SCRATCH_MNT=SCRATCH \
> > ./check `grep -il freeze tests/*/???`
>
> You can run either:
>
> ./check -g freeze
>
> to check just the freezing tests or
>
> ./check

Better for regression testing is:

check -g auto

so that is skips all the tests that are broken or likely to crash
the machine on some debug check.

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx