The commit is pushed to "branch-rh8-4.18.0-240.1.1.vz8.5.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh8-4.18.0-240.1.1.vz8.5.30 ------> commit fac91f3bdb718576886e404075ec750e786d17e6 Author: Kirill Tkhai <ktk...@virtuozzo.com> Date: Mon May 17 19:04:38 2021 +0300
ploop: Rename dm_ploop_endio_hook to pio Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> ===================== Patchset description: dm-ploop: Kill loop Intermediate patches can't be base for bisect. In scope of https://jira.sw.ru/browse/PSBM-123654 Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> --- drivers/md/dm-ploop-cmd.c | 8 ++-- drivers/md/dm-ploop-map.c | 91 ++++++++++++++++++++------------------------ drivers/md/dm-ploop-target.c | 2 +- drivers/md/dm-ploop.h | 17 ++++----- 4 files changed, 54 insertions(+), 64 deletions(-) diff --git a/drivers/md/dm-ploop-cmd.c b/drivers/md/dm-ploop-cmd.c index 346f69056a11..7060e88675ed 100644 --- a/drivers/md/dm-ploop-cmd.c +++ b/drivers/md/dm-ploop-cmd.c @@ -1376,9 +1376,9 @@ static int ploop_push_backup_get_uuid(struct ploop *ploop, char *result, static int ploop_push_backup_read(struct ploop *ploop, char *uuid, char *result, unsigned int maxlen) { - struct dm_ploop_endio_hook *h, *orig_h; struct push_backup *pb = ploop->pb; unsigned int left, right, sz = 0; + struct pio *h, *orig_h; struct rb_node *node; int ret = 1; @@ -1402,7 +1402,7 @@ static int ploop_push_backup_read(struct ploop *ploop, char *uuid, left = right = h->cluster; while ((node = rb_prev(&h->node)) != NULL) { - h = rb_entry(node, struct dm_ploop_endio_hook, node); + h = rb_entry(node, struct pio, node); if (h->cluster + 1 != left || list_empty(&h->list)) break; list_del_init(&h->list); @@ -1411,7 +1411,7 @@ static int ploop_push_backup_read(struct ploop *ploop, char *uuid, h = orig_h; while ((node = rb_next(&h->node)) != NULL) { - h = rb_entry(node, struct dm_ploop_endio_hook, node); + h = rb_entry(node, struct pio, node); if (h->cluster - 1 != right || list_empty(&h->list)) break; list_del_init(&h->list); @@ -1429,7 +1429,7 @@ static int ploop_push_backup_write(struct ploop *ploop, char *uuid, unsigned int i, nr_bat_entries = ploop->nr_bat_entries; struct bio_list bio_list = BIO_EMPTY_LIST; struct push_backup *pb = ploop->pb; - struct dm_ploop_endio_hook *h; + struct pio *h; bool has_more = false; if (!pb) diff --git a/drivers/md/dm-ploop-map.c b/drivers/md/dm-ploop-map.c index 6f1b602117c8..c15e08a2dcd1 100644 --- a/drivers/md/dm-ploop-map.c +++ b/drivers/md/dm-ploop-map.c @@ -66,13 +66,12 @@ static void ploop_index_wb_init(struct ploop_index_wb *piwb, struct ploop *ploop piwb->type = PIWB_TYPE_ALLOC; } -static struct dm_ploop_endio_hook *bio_to_endio_hook(struct bio *bio) +static struct pio *bio_to_endio_hook(struct bio *bio) { - return dm_per_bio_data(bio, sizeof(struct dm_ploop_endio_hook)); + return dm_per_bio_data(bio, sizeof(struct pio)); } -static void __ploop_init_end_io(struct ploop *ploop, - struct dm_ploop_endio_hook *pio) +static void __ploop_init_end_io(struct ploop *ploop, struct pio *pio) { pio->action = PLOOP_END_IO_NONE; pio->ref_index = PLOOP_REF_INDEX_INVALID; @@ -86,7 +85,7 @@ static void __ploop_init_end_io(struct ploop *ploop, static void ploop_init_end_io(struct ploop *ploop, struct bio *bio) { - struct dm_ploop_endio_hook *pio = bio_to_endio_hook(bio); + struct pio *pio = bio_to_endio_hook(bio); __ploop_init_end_io(ploop, pio); } @@ -196,16 +195,14 @@ static int ploop_map_discard(struct ploop *ploop, struct bio *bio) return DM_MAPIO_SUBMITTED; } -struct dm_ploop_endio_hook *find_endio_hook_range(struct ploop *ploop, - struct rb_root *root, - unsigned int left, - unsigned int right) +struct pio *find_endio_hook_range(struct ploop *ploop, struct rb_root *root, + unsigned int left, unsigned int right) { struct rb_node *node = root->rb_node; - struct dm_ploop_endio_hook *h; + struct pio *h; while (node) { - h = rb_entry(node, struct dm_ploop_endio_hook, node); + h = rb_entry(node, struct pio, node); if (right < h->cluster) node = node->rb_left; else if (left > h->cluster) @@ -217,28 +214,25 @@ struct dm_ploop_endio_hook *find_endio_hook_range(struct ploop *ploop, return NULL; } -static struct dm_ploop_endio_hook *find_inflight_bio(struct ploop *ploop, - unsigned int cluster) +static struct pio *find_inflight_bio(struct ploop *ploop, unsigned int cluster) { lockdep_assert_held(&ploop->deferred_lock); return find_endio_hook(ploop, &ploop->inflight_bios_rbtree, cluster); } -struct dm_ploop_endio_hook *find_lk_of_cluster(struct ploop *ploop, - unsigned int cluster) +struct pio *find_lk_of_cluster(struct ploop *ploop, unsigned int cluster) { lockdep_assert_held(&ploop->deferred_lock); return find_endio_hook(ploop, &ploop->exclusive_bios_rbtree, cluster); } -static void add_endio_bio(struct dm_ploop_endio_hook *h, struct bio *later_bio) +static void add_endio_bio(struct pio *h, struct bio *later_bio) { later_bio->bi_next = h->endio_bio_list; h->endio_bio_list = later_bio; } -static void inc_nr_inflight_raw(struct ploop *ploop, - struct dm_ploop_endio_hook *h) +static void inc_nr_inflight_raw(struct ploop *ploop, struct pio *h) { unsigned char ref_index = ploop->inflight_bios_ref_index; @@ -250,7 +244,7 @@ static void inc_nr_inflight_raw(struct ploop *ploop, static void inc_nr_inflight(struct ploop *ploop, struct bio *bio) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); inc_nr_inflight_raw(ploop, h); } @@ -265,8 +259,7 @@ static void inc_nr_inflight(struct ploop *ploop, struct bio *bio) * from ki_complete of requests submitted to delta files * (while increment occurs just right before the submitting). */ -static void dec_nr_inflight_raw(struct ploop *ploop, - struct dm_ploop_endio_hook *h) +static void dec_nr_inflight_raw(struct ploop *ploop, struct pio *h) { if (h->ref_index != PLOOP_REF_INDEX_INVALID) { percpu_ref_put(&ploop->inflight_bios_ref[h->ref_index]); @@ -276,22 +269,22 @@ static void dec_nr_inflight_raw(struct ploop *ploop, static void dec_nr_inflight(struct ploop *ploop, struct bio *bio) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); dec_nr_inflight_raw(ploop, h); } -static void link_endio_hook(struct ploop *ploop, struct dm_ploop_endio_hook *new, - struct rb_root *root, unsigned int cluster, bool exclusive) +static void link_endio_hook(struct ploop *ploop, struct pio *new, struct rb_root *root, + unsigned int cluster, bool exclusive) { struct rb_node *parent, **node = &root->rb_node; - struct dm_ploop_endio_hook *h; + struct pio *h; BUG_ON(!RB_EMPTY_NODE(&new->node)); parent = NULL; while (*node) { - h = rb_entry(*node, struct dm_ploop_endio_hook, node); + h = rb_entry(*node, struct pio, node); parent = *node; if (cluster < h->cluster) node = &parent->rb_left; @@ -320,7 +313,7 @@ static void link_endio_hook(struct ploop *ploop, struct dm_ploop_endio_hook *new * to deferred_list. */ static void unlink_endio_hook(struct ploop *ploop, struct rb_root *root, - struct dm_ploop_endio_hook *h, struct bio_list *bio_list) + struct pio *h, struct bio_list *bio_list) { struct bio *iter; @@ -335,8 +328,7 @@ static void unlink_endio_hook(struct ploop *ploop, struct rb_root *root, } } -static void add_cluster_lk(struct ploop *ploop, struct dm_ploop_endio_hook *h, - unsigned int cluster) +static void add_cluster_lk(struct ploop *ploop, struct pio *h, u32 cluster) { unsigned long flags; @@ -344,7 +336,7 @@ static void add_cluster_lk(struct ploop *ploop, struct dm_ploop_endio_hook *h, link_endio_hook(ploop, h, &ploop->exclusive_bios_rbtree, cluster, true); spin_unlock_irqrestore(&ploop->deferred_lock, flags); } -static void del_cluster_lk(struct ploop *ploop, struct dm_ploop_endio_hook *h) +static void del_cluster_lk(struct ploop *ploop, struct pio *h) { struct bio_list bio_list = BIO_EMPTY_LIST; unsigned long flags; @@ -366,7 +358,7 @@ static void del_cluster_lk(struct ploop *ploop, struct dm_ploop_endio_hook *h) static void maybe_link_submitting_bio(struct ploop *ploop, struct bio *bio, unsigned int cluster) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); unsigned long flags; if (!ploop->force_link_inflight_bios) @@ -378,8 +370,8 @@ static void maybe_link_submitting_bio(struct ploop *ploop, struct bio *bio, } static void maybe_unlink_completed_bio(struct ploop *ploop, struct bio *bio) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); struct bio_list bio_list = BIO_EMPTY_LIST; + struct pio *h = bio_to_endio_hook(bio); unsigned long flags; bool queue = false; @@ -426,8 +418,8 @@ static bool bio_endio_if_all_zeros(struct bio *bio) static void handle_discard_bio(struct ploop *ploop, struct bio *bio, unsigned int cluster, unsigned int dst_cluster) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); - struct dm_ploop_endio_hook *inflight_h; + struct pio *h = bio_to_endio_hook(bio); + struct pio *inflight_h; unsigned long flags; int ret; @@ -483,7 +475,7 @@ static void handle_discard_bio(struct ploop *ploop, struct bio *bio, static int ploop_discard_bio_end(struct ploop *ploop, struct bio *bio) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); dec_nr_inflight(ploop, bio); if (bio->bi_status == BLK_STS_OK) @@ -495,7 +487,7 @@ static int ploop_discard_bio_end(struct ploop *ploop, struct bio *bio) static int ploop_discard_index_bio_end(struct ploop *ploop, struct bio *bio) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); del_cluster_lk(ploop, h); @@ -511,8 +503,8 @@ static void complete_cow(struct ploop_cow *cow, blk_status_t bi_status) unsigned int dst_cluster = cow->dst_cluster; struct bio *cluster_bio = cow->cluster_bio; struct ploop *ploop = cow->ploop; - struct dm_ploop_endio_hook *h; unsigned long flags; + struct pio *h; WARN_ON_ONCE(cluster_bio->bi_next); h = &cow->hook; @@ -851,7 +843,7 @@ static int ploop_alloc_cluster(struct ploop *ploop, struct ploop_index_wb *piwb, static int ploop_data_bio_end(struct bio *bio) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); struct ploop_index_wb *piwb = h->piwb; unsigned long flags; bool completed; @@ -875,7 +867,7 @@ static int ploop_data_bio_end(struct bio *bio) static bool ploop_attach_end_action(struct bio *bio, struct ploop_index_wb *piwb) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); if (WARN_ON_ONCE(h->action != PLOOP_END_IO_NONE)) { h->action = PLOOP_END_IO_NONE; @@ -915,7 +907,7 @@ static void ploop_read_aio_complete(struct kiocb *iocb, long ret, long ret2) } /* * Read cluster or its part from secondary delta. - * @bio is dm's or plain (w/o dm_ploop_endio_hook container and ploop_endio()). + * @bio is dm's or plain (w/o pio container and ploop_endio()). * Note, that nr inflight is not incremented here, so delegate this to caller * (if you need). */ @@ -998,7 +990,7 @@ static void ploop_cow_endio(struct bio *cluster_bio) static bool postpone_if_cluster_locked(struct ploop *ploop, struct bio *bio, unsigned int cluster) { - struct dm_ploop_endio_hook *e_h; /* Exclusively locked */ + struct pio *e_h; /* Exclusively locked */ spin_lock_irq(&ploop->deferred_lock); e_h = find_lk_of_cluster(ploop, cluster); @@ -1014,7 +1006,7 @@ static bool postpone_if_required_for_backup(struct ploop *ploop, { struct push_backup *pb = ploop->pb; bool first, queue_timer = false; - struct dm_ploop_endio_hook *h; + struct pio *h; if (likely(!pb || !pb->alive)) return false; @@ -1149,7 +1141,7 @@ static void submit_cluster_write(struct ploop_cow *cow) static void submit_cow_index_wb(struct ploop_cow *cow, struct ploop_index_wb *piwb) { - struct dm_ploop_endio_hook *h = &cow->hook; + struct pio *h = &cow->hook; unsigned int cluster = h->cluster; struct ploop *ploop = cow->ploop; unsigned int page_nr; @@ -1395,10 +1387,10 @@ static void process_deferred_bios(struct ploop *ploop, struct bio_list *bios, static int process_one_discard_bio(struct ploop *ploop, struct bio *bio, struct ploop_index_wb *piwb) { - struct dm_ploop_endio_hook *h; unsigned int page_nr, cluster; bool bat_update_prepared; map_index_t *to; + struct pio *h; WARN_ON(ploop->nr_deltas); @@ -1467,8 +1459,8 @@ static void do_discard_cleanup(struct ploop *ploop) static void process_discard_bios(struct ploop *ploop, struct bio_list *bios, struct ploop_index_wb *piwb) { - struct dm_ploop_endio_hook *h; struct bio *bio; + struct pio *h; while ((bio = bio_list_pop(bios))) { h = bio_to_endio_hook(bio); @@ -1483,8 +1475,7 @@ static void process_discard_bios(struct ploop *ploop, struct bio_list *bios, /* Remove from tree bio and endio bio chain */ void unlink_postponed_backup_endio(struct ploop *ploop, - struct bio_list *bio_list, - struct dm_ploop_endio_hook *h) + struct bio_list *bio_list, struct pio *h) { struct push_backup *pb = ploop->pb; struct bio *bio; @@ -1504,7 +1495,7 @@ void cleanup_backup(struct ploop *ploop) { struct bio_list bio_list = BIO_EMPTY_LIST; struct push_backup *pb = ploop->pb; - struct dm_ploop_endio_hook *h; + struct pio *h; struct rb_node *node; spin_lock_irq(&ploop->pb_lock); @@ -1514,7 +1505,7 @@ void cleanup_backup(struct ploop *ploop) write_unlock(&ploop->bat_rwlock); while ((node = pb->rb_root.rb_node) != NULL) { - h = rb_entry(node, struct dm_ploop_endio_hook, node); + h = rb_entry(node, struct pio, node); unlink_postponed_backup_endio(ploop, &bio_list, h); } spin_unlock_irq(&ploop->pb_lock); @@ -1643,7 +1634,7 @@ int ploop_map(struct dm_target *ti, struct bio *bio) int ploop_endio(struct dm_target *ti, struct bio *bio, blk_status_t *err) { - struct dm_ploop_endio_hook *h = bio_to_endio_hook(bio); + struct pio *h = bio_to_endio_hook(bio); struct ploop *ploop = ti->private; int ret = DM_ENDIO_DONE; diff --git a/drivers/md/dm-ploop-target.c b/drivers/md/dm-ploop-target.c index f8d471581ac0..e9f1eaf51eb0 100644 --- a/drivers/md/dm-ploop-target.c +++ b/drivers/md/dm-ploop-target.c @@ -271,7 +271,7 @@ static int ploop_ctr(struct dm_target *ti, unsigned int argc, char **argv) if (ret) goto err; - ti->per_io_data_size = sizeof(struct dm_ploop_endio_hook); + ti->per_io_data_size = sizeof(struct pio); ti->num_flush_bios = 1; ti->flush_supported = true; ti->num_discard_bios = 1; diff --git a/drivers/md/dm-ploop.h b/drivers/md/dm-ploop.h index 1dfe3dc7df60..53e7060df8e3 100644 --- a/drivers/md/dm-ploop.h +++ b/drivers/md/dm-ploop.h @@ -229,7 +229,7 @@ struct ploop { spinlock_t pb_lock; }; -struct dm_ploop_endio_hook { +struct pio { struct list_head list; struct rb_node node; @@ -265,7 +265,7 @@ struct ploop_cow { struct bio *cluster_bio; unsigned int dst_cluster; - struct dm_ploop_endio_hook hook; + struct pio hook; void (*end_fn)(struct ploop *, int, void *); void *data; /* Second argument of end_fn */ @@ -456,11 +456,11 @@ static inline void track_bio(struct ploop *ploop, struct bio *bio) __track_bio(ploop, bio); } -extern struct dm_ploop_endio_hook *find_endio_hook_range(struct ploop *ploop, - struct rb_root *root, unsigned int l, unsigned int r); +extern struct pio *find_endio_hook_range(struct ploop *ploop, struct rb_root *root, + unsigned int l, unsigned int r); -static inline struct dm_ploop_endio_hook *find_endio_hook(struct ploop *ploop, - struct rb_root *root, unsigned int cluster) +static inline struct pio *find_endio_hook(struct ploop *ploop, struct rb_root *root, + unsigned int cluster) { return find_endio_hook_range(ploop, root, cluster, cluster); } @@ -482,11 +482,10 @@ extern void process_deferred_cmd(struct ploop *ploop, extern int ploop_map(struct dm_target *ti, struct bio *bio); extern int ploop_endio(struct dm_target *ti, struct bio *bio, blk_status_t *err); extern int ploop_inflight_bios_ref_switch(struct ploop *ploop, bool killable); -extern struct dm_ploop_endio_hook *find_lk_of_cluster(struct ploop *ploop, - unsigned int cluster); +extern struct pio *find_lk_of_cluster(struct ploop *ploop, u32 cluster); extern void unlink_postponed_backup_endio(struct ploop *ploop, struct bio_list *bio_list, - struct dm_ploop_endio_hook *h); + struct pio *h); extern int ploop_prepare_reloc_index_wb(struct ploop *, struct ploop_index_wb *, unsigned int, unsigned int *); _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel