ceph: reencode gid_list when reconnecting
[linux-2.6-microblaze.git] / block / bounce.c
index 431be88..d3f51ac 100644 (file)
@@ -267,22 +267,21 @@ static struct bio *bounce_clone_bio(struct bio *bio_src, gfp_t gfp_mask,
                break;
        }
 
-       bio_crypt_clone(bio, bio_src, gfp_mask);
+       if (bio_crypt_clone(bio, bio_src, gfp_mask) < 0)
+               goto err_put;
 
-       if (bio_integrity(bio_src)) {
-               int ret;
-
-               ret = bio_integrity_clone(bio, bio_src, gfp_mask);
-               if (ret < 0) {
-                       bio_put(bio);
-                       return NULL;
-               }
-       }
+       if (bio_integrity(bio_src) &&
+           bio_integrity_clone(bio, bio_src, gfp_mask) < 0)
+               goto err_put;
 
        bio_clone_blkg_association(bio, bio_src);
        blkcg_bio_issue_init(bio);
 
        return bio;
+
+err_put:
+       bio_put(bio);
+       return NULL;
 }
 
 static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
@@ -341,7 +340,7 @@ static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
                }
        }
 
-       trace_block_bio_bounce(q, *bio_orig);
+       trace_block_bio_bounce(*bio_orig);
 
        bio->bi_flags |= (1 << BIO_BOUNCED);