Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.24 /mm/bounce.c

Filename:/mm/bounce.c
Lines Added:11
Lines Deleted:20
Also changed in: (Previous) 2.6.24-rc8  2.6.24-rc7  2.6.24-rc6  2.6.24-rc5  2.6.24-rc4  2.6.24-rc3 
(Following) 2.6.27-git1  2.6.27-git2  2.6.27-git3  2.6.27-git4  2.6.27-git5  2.6.27-git6 

Location
[  2.6.24
  [  mm
     o  bounce.c

Patch

diff --git a/mm/bounce.c b/mm/bounce.c
index 179fe38..b6d2d0f 100644
--- a/mm/bounce.c
+++ b/mm/bounce.c
@@ -140,26 +140,19 @@ static void bounce_end_io(struct bio *bio, mempool_t *pool, int err)
       mempool_free(bvec->bv_page, pool);
    }
 
-   bio_endio(bio_orig, bio_orig->bi_size, err);
+   bio_endio(bio_orig, err);
    bio_put(bio);
 }
 
-static int bounce_end_io_write(struct bio *bio, unsigned int bytes_done, int err)
+static void bounce_end_io_write(struct bio *bio, int err)
 {
-   if (bio->bi_size)
-      return 1;
-
    bounce_end_io(bio, page_pool, err);
-   return 0;
 }
 
-static int bounce_end_io_write_isa(struct bio *bio, unsigned int bytes_done, int err)
+static void bounce_end_io_write_isa(struct bio *bio, int err)
 {
-   if (bio->bi_size)
-      return 1;
 
    bounce_end_io(bio, isa_page_pool, err);
-   return 0;
 }
 
 static void __bounce_end_io_read(struct bio *bio, mempool_t *pool, int err)
@@ -172,22 +165,14 @@ static void __bounce_end_io_read(struct bio *bio, mempool_t *pool, int err)
    bounce_end_io(bio, pool, err);
 }
 
-static int bounce_end_io_read(struct bio *bio, unsigned int bytes_done, int err)
+static void bounce_end_io_read(struct bio *bio, int err)
 {
-   if (bio->bi_size)
-      return 1;
-
    __bounce_end_io_read(bio, page_pool, err);
-   return 0;
 }
 
-static int bounce_end_io_read_isa(struct bio *bio, unsigned int bytes_done, int err)
+static void bounce_end_io_read_isa(struct bio *bio, int err)
 {
-   if (bio->bi_size)
-      return 1;
-
    __bounce_end_io_read(bio, isa_page_pool, err);
-   return 0;
 }
 
 static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
@@ -280,6 +265,12 @@ void blk_queue_bounce(struct request_queue *q, struct bio **bio_orig)
    mempool_t *pool;
 
    /*
+    * Data-less bio, nothing to bounce
+    */
+   if (bio_empty_barrier(*bio_orig))
+      return;
+
+   /*
     * for non-isa bounce case, just check if the bounce pfn is equal
     * to or bigger than the highest pfn in the system -- in that case,
     * don't waste time iterating over bio segments


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.