xen/blkback: Cleanup move the code a bit around.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 15 Apr 2011 14:58:05 +0000 (10:58 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 15 Apr 2011 14:59:06 +0000 (10:59 -0400)
Moving it so that the code that 'fast_flush_area' code is
close to the code that deals with it so that the reader
won't lose focus.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/blkback/blkback.c

index 3c10499..f282463 100644 (file)
@@ -167,41 +167,18 @@ static void free_req(struct pending_req *req)
 }
 
 /*
- * Unmap the grant references, and also remove the M2P over-rides
- * used in the 'pending_req'.
-*/
-static void fast_flush_area(struct pending_req *req)
+ * Notification from the guest OS.
+ */
+static void blkif_notify_work(struct blkif_st *blkif)
 {
-       struct gnttab_unmap_grant_ref unmap[BLKIF_MAX_SEGMENTS_PER_REQUEST];
-       unsigned int i, invcount = 0;
-       grant_handle_t handle;
-       int ret;
-
-       for (i = 0; i < req->nr_pages; i++) {
-               handle = pending_handle(req, i);
-               if (handle == BLKBACK_INVALID_HANDLE)
-                       continue;
-               gnttab_set_unmap_op(&unmap[invcount], vaddr(req, i),
-                                   GNTMAP_host_map, handle);
-               pending_handle(req, i) = BLKBACK_INVALID_HANDLE;
-               invcount++;
-       }
+       blkif->waiting_reqs = 1;
+       wake_up(&blkif->wq);
+}
 
-       ret = HYPERVISOR_grant_table_op(
-               GNTTABOP_unmap_grant_ref, unmap, invcount);
-       BUG_ON(ret);
-       /* Note, we use invcount, so nr->pages, so we can't index
-        * using vaddr(req, i).
-        */
-       for (i = 0; i < invcount; i++) {
-               ret = m2p_remove_override(
-                       virt_to_page(unmap[i].host_addr), false);
-               if (ret) {
-                       printk(KERN_ALERT "Failed to remove M2P override for " \
-                               "%lx\n", (unsigned long)unmap[i].host_addr);
-                       continue;
-               }
-       }
+irqreturn_t blkif_be_int(int irq, void *dev_id)
+{
+       blkif_notify_work(dev_id);
+       return IRQ_HANDLED;
 }
 
 /*
@@ -264,6 +241,43 @@ int blkif_schedule(void *arg)
        return 0;
 }
 
+/*
+ * Unmap the grant references, and also remove the M2P over-rides
+ * used in the 'pending_req'.
+*/
+static void fast_flush_area(struct pending_req *req)
+{
+       struct gnttab_unmap_grant_ref unmap[BLKIF_MAX_SEGMENTS_PER_REQUEST];
+       unsigned int i, invcount = 0;
+       grant_handle_t handle;
+       int ret;
+
+       for (i = 0; i < req->nr_pages; i++) {
+               handle = pending_handle(req, i);
+               if (handle == BLKBACK_INVALID_HANDLE)
+                       continue;
+               gnttab_set_unmap_op(&unmap[invcount], vaddr(req, i),
+                                   GNTMAP_host_map, handle);
+               pending_handle(req, i) = BLKBACK_INVALID_HANDLE;
+               invcount++;
+       }
+
+       ret = HYPERVISOR_grant_table_op(
+               GNTTABOP_unmap_grant_ref, unmap, invcount);
+       BUG_ON(ret);
+       /* Note, we use invcount, so nr->pages, so we can't index
+        * using vaddr(req, i).
+        */
+       for (i = 0; i < invcount; i++) {
+               ret = m2p_remove_override(
+                       virt_to_page(unmap[i].host_addr), false);
+               if (ret) {
+                       printk(KERN_ALERT "Failed to remove M2P override for " \
+                               "%lx\n", (unsigned long)unmap[i].host_addr);
+                       continue;
+               }
+       }
+}
 /*
  * Completion callback on the bio's. Called as bh->b_end_io()
  */
@@ -305,23 +319,6 @@ static void end_block_io_op(struct bio *bio, int error)
 }
 
 
-/*
- * Notification from the guest OS.
- */
-
-static void blkif_notify_work(struct blkif_st *blkif)
-{
-       blkif->waiting_reqs = 1;
-       wake_up(&blkif->wq);
-}
-
-irqreturn_t blkif_be_int(int irq, void *dev_id)
-{
-       blkif_notify_work(dev_id);
-       return IRQ_HANDLED;
-}
-
-
 
 /*
  * Function to copy the from the ring buffer the 'struct blkif_request'