On 1/24/25 23:35, Alexander Atanasov wrote:
@@ -157,11 +161,13 @@ static u32 ploop_find_bat_entry(struct ploop *ploop, u32 
dst_clu, bool *is_locke
        u32 i, end, *bat_entries, clu = U32_MAX;
        struct rb_node *node;
        struct md_page *md;
+       unsigned long flags;
- read_lock_irq(&ploop->bat_rwlock);
        ploop_for_each_md_page(ploop, md, node) {
                ploop_init_be_iter(ploop, md->id, &i, &end);
                bat_entries = md->kmpage;
+
+               spin_lock_irqsave(&md->md_lock, flags); /* read */
                for (; i <= end; i++) {
                        if (READ_ONCE(bat_entries[i]) != dst_clu)
                                continue;

Same thing here, if we had _irq and now have _irqsave carefull explanation is required, patch has none.

  +-< ploop_find_bat_entry
    +-< ploop_grow_relocate_cluster
    | +-< ploop_process_resize_cmd
    | | +-< ploop_resize
    | | | +-< ploop_message # process context

--
Best regards, Tikhomirov Pavel
Senior Software Developer, Virtuozzo.

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

Reply via email to