Re: [PATCH 5/5] ext2: Add ext2_sb_info s_lock spinlock

From: Jan Blunck
Date: Wed Apr 14 2010 - 04:00:30 EST


On Wed, Apr 14, Jaswinder Singh Rajput wrote:

> Hello,
>
> On Tue, Apr 13, 2010 at 2:11 AM, Jan Blunck <jblunck@xxxxxxx> wrote:
> > Add a spinlock that protects against concurrent modifications of
> > s_mount_state, s_blocks_last, s_overhead_last and the content of the
> > superblock's buffer pointed to by sbi->s_es. This is a preparation patch
> > for removing the BKL from ext2 in the next patch.
> >
> > Signed-off-by: Jan Blunck <jblunck@xxxxxxx>
> > Cc: Andi Kleen <andi@xxxxxxxxxxxxxx>
> > Cc: Jan Kara <jack@xxxxxxx>
> > Cc: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
> > ---
> >  fs/ext2/inode.c            |    2 ++
> >  fs/ext2/super.c            |   31 +++++++++++++++++++++++++++++--
> >  include/linux/ext2_fs_sb.h |    6 ++++++
> >  3 files changed, 37 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
> > index fc13cc1..5d15442 100644
> > --- a/fs/ext2/inode.c
> > +++ b/fs/ext2/inode.c
> > @@ -1407,9 +1407,11 @@ static int __ext2_write_inode(struct inode *inode, int do_sync)
> >                                * created, add a flag to the superblock.
> >                                */
> >                                lock_kernel();
> > +                               spin_lock(&EXT2_SB(sb)->s_lock);
> >                                ext2_update_dynamic_rev(sb);
> >                                EXT2_SET_RO_COMPAT_FEATURE(sb,
> >                                        EXT2_FEATURE_RO_COMPAT_LARGE_FILE);
> > +                               spin_unlock(&EXT2_SB(sb)->s_lock);
> >                                unlock_kernel();
> >                                ext2_write_super(sb);
>
> Do we need both locks (kernel lock and spin lock)
>

The BKL is removed in a separate patch. First I though it should get merged
through Frederic's tree but since the removal does not depend on the pushdown
from do_new_mount() I guess it is safe to add here.

Thanks,
Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/