Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com>
---
 drivers/md/dm-ploop-bat.c    |   11 ++++++-----
 drivers/md/dm-ploop-target.c |    6 +++---
 drivers/md/dm-ploop.h        |    2 +-
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/md/dm-ploop-bat.c b/drivers/md/dm-ploop-bat.c
index 1c2357a21673..6ac660ab8b8f 100644
--- a/drivers/md/dm-ploop-bat.c
+++ b/drivers/md/dm-ploop-bat.c
@@ -144,7 +144,8 @@ bool try_update_bat_entry(struct ploop *ploop, unsigned int 
cluster,
  * BAT_ENTRY_NONE.
  */
 static int parse_bat_entries(struct ploop *ploop, map_index_t *bat_entries,
-                    u8 *bat_levels, unsigned int nr, unsigned int page_id)
+                            u8 *bat_levels, unsigned int nr,
+                            unsigned int page_id, u8 nr_deltas)
 {
        int i = 0;
 
@@ -171,7 +172,7 @@ static int parse_bat_entries(struct ploop *ploop, 
map_index_t *bat_entries,
  * Read from disk and fill bat_entries. Note, that on enter here, cluster #0
  * is already read from disk (with header) -- just parse bio pages content.
  */
-static int ploop_read_bat(struct ploop *ploop, struct bio *bio)
+static int ploop_read_bat(struct ploop *ploop, struct bio *bio, u8 nr_deltas)
 {
        unsigned int id, entries_per_page, nr_copy, nr_all, page, i = 0;
        map_index_t *from, *to, cluster = 0;
@@ -204,7 +205,7 @@ static int ploop_read_bat(struct ploop *ploop, struct bio 
*bio)
                        }
 
                        ret = parse_bat_entries(ploop, to, md->bat_levels,
-                                               nr_copy, id);
+                                               nr_copy, id, nr_deltas);
                        kunmap(md->page);
                        if (ret)
                                goto out;
@@ -257,7 +258,7 @@ static int ploop_setup_holes_bitmap(struct ploop *ploop,
  * Allocate memory for bat_entries, bat_levels and holes_bitmap,
  * and read their content from disk.
  */
-int ploop_read_metadata(struct dm_target *ti, struct ploop *ploop)
+int ploop_read_metadata(struct dm_target *ti, struct ploop *ploop, u8 
nr_deltas)
 {
        unsigned int bat_clusters, offset_clusters, cluster_log;
        struct ploop_pvd_header *m_hdr = NULL;
@@ -315,7 +316,7 @@ int ploop_read_metadata(struct dm_target *ti, struct ploop 
*ploop)
        if (ret)
                goto out;
 
-       ret = ploop_read_bat(ploop, bio);
+       ret = ploop_read_bat(ploop, bio, nr_deltas);
 out:
        if (m_hdr)
                kunmap(page);
diff --git a/drivers/md/dm-ploop-target.c b/drivers/md/dm-ploop-target.c
index a07cee3fea46..a14d0d6cab4f 100644
--- a/drivers/md/dm-ploop-target.c
+++ b/drivers/md/dm-ploop-target.c
@@ -97,7 +97,7 @@ static void ploop_destroy(struct ploop *ploop)
        kfree(ploop);
 }
 
-static int ploop_check_origin_dev(struct dm_target *ti, struct ploop *ploop)
+static int ploop_check_origin_dev(struct dm_target *ti, struct ploop *ploop, 
u8 nr_deltas)
 {
        struct block_device *bdev = ploop->origin_dev->bdev;
        int r;
@@ -107,7 +107,7 @@ static int ploop_check_origin_dev(struct dm_target *ti, 
struct ploop *ploop)
                return -EINVAL;
        }
 
-       r = ploop_read_metadata(ti, ploop);
+       r = ploop_read_metadata(ti, ploop, nr_deltas);
        if (r) {
                ti->error = "Can't read ploop header";
                return r;
@@ -259,7 +259,7 @@ static int ploop_ctr(struct dm_target *ti, unsigned int 
argc, char **argv)
                goto err;
        }
 
-       ret = ploop_check_origin_dev(ti, ploop);
+       ret = ploop_check_origin_dev(ti, ploop, argc - 2);
        if (ret) {
                /* ploop_check_origin_dev() assigns ti->error */
                goto err;
diff --git a/drivers/md/dm-ploop.h b/drivers/md/dm-ploop.h
index 466f1506741e..45db3ec67950 100644
--- a/drivers/md/dm-ploop.h
+++ b/drivers/md/dm-ploop.h
@@ -524,7 +524,7 @@ extern void cleanup_backup(struct ploop *ploop);
 
 extern int ploop_read_cluster_sync(struct ploop *, struct bio *, unsigned int);
 
-extern int ploop_read_metadata(struct dm_target *ti, struct ploop *ploop);
+extern int ploop_read_metadata(struct dm_target *ti, struct ploop *ploop, u8 
nr_deltas);
 extern int ploop_read_delta_metadata(struct ploop *ploop, struct file *file,
                                     void **d_hdr);
 


_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to