VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / mm / highmem.c
index 9fc1106..432da5b 100644 (file)
@@ -26,7 +26,6 @@
 #include <linux/init.h>
 #include <linux/hash.h>
 #include <linux/highmem.h>
-#include <asm/pgalloc.h>
 #include <asm/tlbflush.h>
 
 static mempool_t *page_pool, *isa_page_pool;
@@ -309,12 +308,10 @@ static void bounce_end_io(struct bio *bio, mempool_t *pool)
 {
        struct bio *bio_orig = bio->bi_private;
        struct bio_vec *bvec, *org_vec;
-       int i;
+       int i, err = 0;
 
        if (!test_bit(BIO_UPTODATE, &bio->bi_flags))
-               goto out_eio;
-
-       set_bit(BIO_UPTODATE, &bio_orig->bi_flags);
+               err = -EIO;
 
        /*
         * free up bounce indirect pages used
@@ -327,8 +324,7 @@ static void bounce_end_io(struct bio *bio, mempool_t *pool)
                mempool_free(bvec->bv_page, pool);      
        }
 
-out_eio:
-       bio_endio(bio_orig, bio_orig->bi_size, 0);
+       bio_endio(bio_orig, bio_orig->bi_size, err);
        bio_put(bio);
 }