xen/blkback: Move the check for misaligned I/O higher.

We move it up higher to be in same loop that actually computes
the sector number.

This way, all of the code that deals with verifying that the
request is correct is all done before we do any of the
page mapping, I/O submission, etc.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
diff --git a/drivers/xen/blkback/blkback.c b/drivers/xen/blkback/blkback.c
index 211b200..9598e0f 100644
--- a/drivers/xen/blkback/blkback.c
+++ b/drivers/xen/blkback/blkback.c
@@ -521,6 +521,13 @@
 		    (req->u.rw.seg[i].last_sect < req->u.rw.seg[i].first_sect))
 			goto fail_response;
 		preq.nr_sects += seg[i].nsec;
+
+		if (((int)preq.sector_number|(int)seg[i].nsec) &
+		    ((bdev_logical_block_size(preq.bdev) >> 9) - 1)) {
+			DPRINTK("Misaligned I/O request from domain %d",
+				blkif->domid);
+			goto fail_response;
+		}
 	}
 
 	if (vbd_translate(&preq, blkif, operation) != 0) {
@@ -542,13 +549,6 @@
 	blkif_get(blkif);
 
 	for (i = 0; i < nseg; i++) {
-		if (((int)preq.sector_number|(int)seg[i].nsec) &
-		    ((bdev_logical_block_size(preq.bdev) >> 9) - 1)) {
-			DPRINTK("Misaligned I/O request from domain %d",
-				blkif->domid);
-			goto fail_put_bio;
-		}
-
 		while ((bio == NULL) ||
 		       (bio_add_page(bio,
 				     blkbk->pending_page(pending_req, i),