Skip to content

Commit

Permalink
[PATCH] fs/bio.c: tweaks
Browse files Browse the repository at this point in the history
- Calculate a variable in bvec_alloc_bs() only once needed, not earlier
  (bio.o down from 18408 to 18376 Bytes, 32 Bytes saved, probably due to
  data locality improvements).

- Init variable idx to silence a gcc warning which already existed in the
  unmodified original base file (bvec_alloc_bs() handles idx correctly, so
  there's no need for the warning):

	fs/bio.c: In function `bio_alloc_bioset':
	fs/bio.c:169: warning: `idx' may be used uninitialized in this function

Signed-off-by: Andreas Mohr <andi@lisas.de>
Acked-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Andreas Mohr authored and Linus Torvalds committed Oct 11, 2006
1 parent 49a6cbe commit bf02c08
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions fs/bio.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ static struct bio_set *fs_bio_set;
static inline struct bio_vec *bvec_alloc_bs(gfp_t gfp_mask, int nr, unsigned long *idx, struct bio_set *bs)
{
struct bio_vec *bvl;
struct biovec_slab *bp;

/*
* see comment near bvec_array define!
Expand All @@ -98,10 +97,12 @@ static inline struct bio_vec *bvec_alloc_bs(gfp_t gfp_mask, int nr, unsigned lon
* idx now points to the pool we want to allocate from
*/

bp = bvec_slabs + *idx;
bvl = mempool_alloc(bs->bvec_pools[*idx], gfp_mask);
if (bvl)
if (bvl) {
struct biovec_slab *bp = bvec_slabs + *idx;

memset(bvl, 0, bp->nr_vecs * sizeof(struct bio_vec));
}

return bvl;
}
Expand Down Expand Up @@ -166,7 +167,7 @@ struct bio *bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs, struct bio_set *bs)

bio_init(bio);
if (likely(nr_iovecs)) {
unsigned long idx;
unsigned long idx = 0; /* shut up gcc */

bvl = bvec_alloc_bs(gfp_mask, nr_iovecs, &idx, bs);
if (unlikely(!bvl)) {
Expand Down

0 comments on commit bf02c08

Please sign in to comment.