On 14.01.25 6:03, Pavel Tikhomirov wrote:
On 12/6/24 05:55, Alexander Atanasov wrote:
@@ -411,7 +415,6 @@ static void ploop_apply_delta_mappings(struct ploop *ploop,
      if (!is_raw)
          d_md = ploop_md_first_entry(md_root);
-    write_lock_irq(&ploop->bat_rwlock);
      ploop_for_each_md_page(ploop, md, node) {
          bat_entries = md->kmpage;
          if (!is_raw)
@@ -455,7 +458,6 @@ static void ploop_apply_delta_mappings(struct ploop *ploop,
          if (!is_raw)
              d_md = ploop_md_next_entry(d_md);
      }
-    write_unlock_irq(&ploop->bat_rwlock);
  }
  int ploop_check_delta_length(struct ploop *ploop, struct file *file, loff_t *file_size)

This is not possible to remove this lock, as ploop->bat_entries rbtree is protected by it. In other words ploop_for_each_md_page should be protected by critical section against concurrent ploop_add_md_pages.



No, it is possible.

- ploop_apply_delta_mappings is only used before the device is started - not possible to have concurent calls.

- ploop_add_md_pages in case of resize works on a different rbtree.



--
Regards,
Alexander Atanasov

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

Reply via email to