diff options
author | Bob Peterson <rpeterso@redhat.com> | 2013-09-11 13:44:01 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2013-09-17 10:14:39 +0100 |
commit | 6aa7640f306a1dd0923d29d9190c5686907d5140 (patch) | |
tree | de2d5f54bbbeccd2aaa996eeceba8bd696b7d978 /fs | |
parent | 0d0d110720d7960b77c03c9f2597faaff4b484ae (diff) | |
download | talos-op-linux-6aa7640f306a1dd0923d29d9190c5686907d5140.tar.gz talos-op-linux-6aa7640f306a1dd0923d29d9190c5686907d5140.zip |
GFS2: optimize rbm_from_block wrt bi_start
In function gfs2_rbm_from_block, it starts by checking if the block
falls within the first bitmap. It does so by checking if the rbm's
offset is less than (rbm->bi->bi_start + rbm->bi->bi_len) * GFS2_NBBY.
However, the first bitmap will always have bi_start==0. Therefore
this is an unnecessary calculation in a function that gets called
billions of times. This patch removes the reference to bi_start.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/gfs2/rgrp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 69317435faa7..7a6fa03bb32a 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c @@ -262,7 +262,7 @@ static int gfs2_rbm_from_block(struct gfs2_rbm *rbm, u64 block) rbm->bi = rbm->rgd->rd_bits; rbm->offset = (u32)(rblock); /* Check if the block is within the first block */ - if (rbm->offset < (rbm->bi->bi_start + rbm->bi->bi_len) * GFS2_NBBY) + if (rbm->offset < rbm->bi->bi_len * GFS2_NBBY) return 0; /* Adjust for the size diff between gfs2_meta_header and gfs2_rgrp */ |