2006-10-19 18:33:33

by Andreas Gruenbacher

[permalink] [raw]
Subject: [PATCH] Remove superfluous lock_super() in ext2 and ext3 xattr code

lock_super() is unnecessary for setting super-block feature flags.
Use the provided *_SET_COMPAT_FEATURE() macros as well.

Signed-off-by: Andreas Gruenbacher <[email protected]>

Index: linux-2.6.19-rc2/fs/ext2/xattr.c
===================================================================
--- linux-2.6.19-rc2.orig/fs/ext2/xattr.c
+++ linux-2.6.19-rc2/fs/ext2/xattr.c
@@ -342,12 +342,9 @@ static void ext2_xattr_update_super_bloc
if (EXT2_HAS_COMPAT_FEATURE(sb, EXT2_FEATURE_COMPAT_EXT_ATTR))
return;

- lock_super(sb);
- EXT2_SB(sb)->s_es->s_feature_compat |=
- cpu_to_le32(EXT2_FEATURE_COMPAT_EXT_ATTR);
+ EXT2_SET_COMPAT_FEATURE(sb, EXT2_FEATURE_COMPAT_EXT_ATTR);
sb->s_dirt = 1;
mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
- unlock_super(sb);
}

/*
Index: linux-2.6.19-rc2/fs/ext3/xattr.c
===================================================================
--- linux-2.6.19-rc2.orig/fs/ext3/xattr.c
+++ linux-2.6.19-rc2/fs/ext3/xattr.c
@@ -459,14 +459,11 @@ static void ext3_xattr_update_super_bloc
if (EXT3_HAS_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_EXT_ATTR))
return;

- lock_super(sb);
if (ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh) == 0) {
- EXT3_SB(sb)->s_es->s_feature_compat |=
- cpu_to_le32(EXT3_FEATURE_COMPAT_EXT_ATTR);
+ EXT3_SET_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_EXT_ATTR);
sb->s_dirt = 1;
ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
}
- unlock_super(sb);
}

/*


2006-10-19 22:52:18

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] Remove superfluous lock_super() in ext2 and ext3 xattr code

On Thu, 19 Oct 2006 20:34:24 +0200
Andreas Gruenbacher <[email protected]> wrote:

> Index: linux-2.6.19-rc2/fs/ext2/xattr.c
> Index: linux-2.6.19-rc2/fs/ext3/xattr.c

You forgot ext4 ;)

I updated the patch, thanks.