Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=992c5ddaf1b8b85d2252339c4c89adf7469c09ca
Commit:     992c5ddaf1b8b85d2252339c4c89adf7469c09ca
Parent:     2b94de552e07610dfa79fc49ea49d1cfa5cd9ce8
Author:     Jens Axboe <[EMAIL PROTECTED]>
AuthorDate: Wed Jul 18 13:18:08 2007 +0200
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 11:03:52 2007 +0200

    bio: make freeing of ->bi_io_vec conditional in bio_free()
    
    The empty barrier patches do not carry data, so they have no
    iovec attached.
    
    Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 fs/bio.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/bio.c b/fs/bio.c
index ac987fc..d59ddbf 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -109,11 +109,14 @@ static inline struct bio_vec *bvec_alloc_bs(gfp_t 
gfp_mask, int nr, unsigned lon
 
 void bio_free(struct bio *bio, struct bio_set *bio_set)
 {
-       const int pool_idx = BIO_POOL_IDX(bio);
+       if (bio->bi_io_vec) {
+               const int pool_idx = BIO_POOL_IDX(bio);
 
-       BIO_BUG_ON(pool_idx >= BIOVEC_NR_POOLS);
+               BIO_BUG_ON(pool_idx >= BIOVEC_NR_POOLS);
+
+               mempool_free(bio->bi_io_vec, bio_set->bvec_pools[pool_idx]);
+       }
 
-       mempool_free(bio->bi_io_vec, bio_set->bvec_pools[pool_idx]);
        mempool_free(bio, bio_set->bio_pool);
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to