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
