Less code ==> better readability.
Also rename prepare_merge methods for better grepping.

Signed-off-by: Kirill Tkhai <[email protected]>
---
 drivers/block/ploop/dev.c        |   23 ++++++++++++++++++++++-
 drivers/block/ploop/fmt_ploop1.c |    7 +------
 drivers/block/ploop/fmt_raw.c    |   14 --------------
 drivers/block/ploop/io_direct.c  |    2 +-
 drivers/block/ploop/io_kaio.c    |    2 +-
 include/linux/ploop/ploop.h      |    4 ++--
 6 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/drivers/block/ploop/dev.c b/drivers/block/ploop/dev.c
index 3ada41f91867..8b74fe03f17f 100644
--- a/drivers/block/ploop/dev.c
+++ b/drivers/block/ploop/dev.c
@@ -3792,6 +3792,27 @@ static void ploop_merge_complete(struct ploop_device * 
plo,
        ploop_relax(plo);
 }
 
+static int ploop_prepare_merge(struct ploop_delta *next,
+                              struct ploop_snapdata *sd)
+{
+       int ret;
+
+       if (next->ops->fmt_prepare_merge) {
+               /* Format callback */
+               ret = next->ops->fmt_prepare_merge(next, sd);
+               if (ret)
+                       return ret;
+       }
+
+       /* io callback */
+       ret = next->io.ops->io_prepare_merge(&next->io, sd);
+       if (ret)
+               return ret;
+
+       next->flags &= ~PLOOP_FMT_RDONLY;
+       return 0;
+}
+
 static int ploop_merge(struct ploop_device * plo)
 {
        int err;
@@ -3823,7 +3844,7 @@ static int ploop_merge(struct ploop_device * plo)
 
        next = list_entry(delta->list.next, struct ploop_delta, list);
 
-       err = next->ops->prepare_merge(next, &sd);
+       err = ploop_prepare_merge(next, &sd);
        if (err) {
                printk(KERN_WARNING "prepare_merge for ploop%d failed (%d)\n",
                       plo->index, err);
diff --git a/drivers/block/ploop/fmt_ploop1.c b/drivers/block/ploop/fmt_ploop1.c
index 6212634a1c0e..4846d96232b8 100644
--- a/drivers/block/ploop/fmt_ploop1.c
+++ b/drivers/block/ploop/fmt_ploop1.c
@@ -516,11 +516,6 @@ ploop1_prepare_merge(struct ploop_delta * delta, struct 
ploop_snapdata * sd)
                         (delta->io.plo->cluster_log + 9);
        delta->io.alloc_head = ph->alloc_head;
 
-       err = delta->io.ops->prepare_merge(&delta->io, sd);
-       if (err)
-               return err;
-
-       delta->flags &= ~PLOOP_FMT_RDONLY;
        return 0;
 }
 
@@ -783,7 +778,7 @@ static struct ploop_delta_ops ploop1_delta_ops =
        .sync           =       ploop1_sync,
        .prepare_snapshot =     ploop1_prepare_snapshot,
        .complete_snapshot =    ploop1_complete_snapshot,
-       .prepare_merge  =       ploop1_prepare_merge,
+       .fmt_prepare_merge =    ploop1_prepare_merge,
        .start_merge    =       ploop1_start_merge,
        .complete_merge =       ploop1_complete_merge,
        .truncate       =       ploop1_truncate,
diff --git a/drivers/block/ploop/fmt_raw.c b/drivers/block/ploop/fmt_raw.c
index 93164e282955..d88380b27c1d 100644
--- a/drivers/block/ploop/fmt_raw.c
+++ b/drivers/block/ploop/fmt_raw.c
@@ -182,19 +182,6 @@ raw_complete_snapshot(struct ploop_delta * delta, struct 
ploop_snapdata * sd)
        return err;
 }
 
-static int
-raw_prepare_merge(struct ploop_delta * delta, struct ploop_snapdata * sd)
-{
-       int err;
-
-       err = delta->io.ops->prepare_merge(&delta->io, sd);
-       if (err)
-               return err;
-
-       delta->flags &= ~PLOOP_FMT_RDONLY;
-       return 0;
-}
-
 static int
 raw_start_merge(struct ploop_delta * delta, struct ploop_snapdata * sd)
 {
@@ -248,7 +235,6 @@ static struct ploop_delta_ops raw_delta_ops =
        .refresh        =       raw_refresh,
        .prepare_snapshot =     raw_prepare_snapshot,
        .complete_snapshot =    raw_complete_snapshot,
-       .prepare_merge  =       raw_prepare_merge,
        .start_merge    =       raw_start_merge,
        .prepare_grow   =       raw_prepare_grow,
 };
diff --git a/drivers/block/ploop/io_direct.c b/drivers/block/ploop/io_direct.c
index 1667989c9c3b..9fd2075661ad 100644
--- a/drivers/block/ploop/io_direct.c
+++ b/drivers/block/ploop/io_direct.c
@@ -1932,7 +1932,7 @@ static struct ploop_io_ops ploop_io_ops_direct =
        .stop           =       dio_stop,
        .prepare_snapshot =     dio_prepare_snapshot,
        .complete_snapshot =    dio_complete_snapshot,
-       .prepare_merge  =       dio_prepare_merge,
+       .io_prepare_merge =     dio_prepare_merge,
        .start_merge    =       dio_start_merge,
        .truncate       =       dio_truncate,
 
diff --git a/drivers/block/ploop/io_kaio.c b/drivers/block/ploop/io_kaio.c
index b5eb92d9523a..6882f921d069 100644
--- a/drivers/block/ploop/io_kaio.c
+++ b/drivers/block/ploop/io_kaio.c
@@ -1134,7 +1134,7 @@ static struct ploop_io_ops ploop_io_ops_kaio =
        .stop           =       kaio_stop,
        .prepare_snapshot =     kaio_prepare_snapshot,
        .complete_snapshot =    kaio_complete_snapshot,
-       .prepare_merge  =       kaio_prepare_merge,
+       .io_prepare_merge =     kaio_prepare_merge,
        .start_merge    =       kaio_start_merge,
        .truncate       =       kaio_truncate,
 
diff --git a/include/linux/ploop/ploop.h b/include/linux/ploop/ploop.h
index c3ced34e8909..7a77e674fe74 100644
--- a/include/linux/ploop/ploop.h
+++ b/include/linux/ploop/ploop.h
@@ -191,7 +191,7 @@ struct ploop_io_ops
        int     (*stop)(struct ploop_io * io);
        int     (*prepare_snapshot)(struct ploop_io *, struct ploop_snapdata *);
        int     (*complete_snapshot)(struct ploop_io *, struct ploop_snapdata 
*);
-       int     (*prepare_merge)(struct ploop_io *, struct ploop_snapdata *);
+       int     (*io_prepare_merge)(struct ploop_io *, struct ploop_snapdata *);
        int     (*start_merge)(struct ploop_io *, struct ploop_snapdata *);
        int     (*truncate)(struct ploop_io *, struct file *, __u32 alloc_head);
        void    (*queue_settings)(struct ploop_io *, struct request_queue *q);
@@ -281,7 +281,7 @@ struct ploop_delta_ops
        int             (*sync)(struct ploop_delta *);
        int             (*prepare_snapshot)(struct ploop_delta *, struct 
ploop_snapdata *);
        int             (*complete_snapshot)(struct ploop_delta *, struct 
ploop_snapdata *);
-       int             (*prepare_merge)(struct ploop_delta *, struct 
ploop_snapdata *);
+       int             (*fmt_prepare_merge)(struct ploop_delta *, struct 
ploop_snapdata *);
        int             (*start_merge)(struct ploop_delta *, struct 
ploop_snapdata *);
        int             (*complete_merge)(struct ploop_delta *);
        int             (*truncate)(struct ploop_delta *, struct file *, __u32 
alloc_head);

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to