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

From: Jaswinder Singh Rajput
Date: Wed Apr 14 2010 - 03:10:33 EST


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)

Thanks,
--
JSR
--
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/