Patchwork [1/2] Ext2: use unlikely to improve the efficiency of the kernel

login
register
mail settings
Submitter Wang shilong
Date Jan. 12, 2013, 9:34 a.m.
Message ID <CAP9B-Qkxe-hmCJN9dR1qbjqE35XyWn=KTa47j57Zn3ww2QBjeg@mail.gmail.com>
Download mbox | patch
Permalink /patch/211483/
State Not Applicable
Headers show

Comments

Wang shilong - Jan. 12, 2013, 9:34 a.m.
From: Wang Shilong <wangsl-fnst@cn.fujitsu.com>

Because the function 'sb_getblk' seldomly fails to return
NULL value. It will be better to use unlikely to optimize it.

Signed-off-by: Wang shilong <wangsl-fnst@cn.fujitsu.com>
---
 fs/ext2/super.c |    2 +-
 fs/ext2/xattr.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

 				error = -EIO;
Jan Kara - Jan. 14, 2013, 2:21 p.m.
On Sat 12-01-13 01:34:50, shilong wang wrote:
> From: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
> 
> Because the function 'sb_getblk' seldomly fails to return
> NULL value. It will be better to use unlikely to optimize it.
  Thanks, I've merged the patch. But your mailer has apparently wrapped
lines in the patch so I had to fix it up. Please either use mailer that
doesn't wrap lines or send patches as text/plain attachments. Thanks!

								Honza
> 
> Signed-off-by: Wang shilong <wangsl-fnst@cn.fujitsu.com>
> ---
>  fs/ext2/super.c |    2 +-
>  fs/ext2/xattr.c |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/ext2/super.c b/fs/ext2/super.c
> index af74d9e..c0f4fc6 100644
> --- a/fs/ext2/super.c
> +++ b/fs/ext2/super.c
> @@ -1495,7 +1495,7 @@ static ssize_t ext2_quota_write(struct
> super_block *sb, int type,
>  			bh = sb_bread(sb, tmp_bh.b_blocknr);
>  		else
>  			bh = sb_getblk(sb, tmp_bh.b_blocknr);
> -		if (!bh) {
> +		if (unlikely(!bh)) {
>  			err = -EIO;
>  			goto out;
>  		}
> diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
> index b6754db..06209ec 100644
> --- a/fs/ext2/xattr.c
> +++ b/fs/ext2/xattr.c
> @@ -662,7 +662,7 @@ ext2_xattr_set2(struct inode *inode, struct
> buffer_head *old_bh,
>  			ea_idebug(inode, "creating block %d", block);
> 
>  			new_bh = sb_getblk(sb, block);
> -			if (!new_bh) {
> +			if (unlikely(!new_bh)) {
>  				ext2_free_blocks(inode, block, 1);
>  				mark_inode_dirty(inode);
>  				error = -EIO;
> -- 
> 1.7.7.6

Patch

diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index af74d9e..c0f4fc6 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1495,7 +1495,7 @@  static ssize_t ext2_quota_write(struct
super_block *sb, int type,
 			bh = sb_bread(sb, tmp_bh.b_blocknr);
 		else
 			bh = sb_getblk(sb, tmp_bh.b_blocknr);
-		if (!bh) {
+		if (unlikely(!bh)) {
 			err = -EIO;
 			goto out;
 		}
diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
index b6754db..06209ec 100644
--- a/fs/ext2/xattr.c
+++ b/fs/ext2/xattr.c
@@ -662,7 +662,7 @@  ext2_xattr_set2(struct inode *inode, struct
buffer_head *old_bh,
 			ea_idebug(inode, "creating block %d", block);

 			new_bh = sb_getblk(sb, block);
-			if (!new_bh) {
+			if (unlikely(!new_bh)) {
 				ext2_free_blocks(inode, block, 1);
 				mark_inode_dirty(inode);