Question about how to trigger BUG_ON() in sm_disk_new_block()

From: lilingfeng (A)
Date: Fri Jan 13 2023 - 03:09:31 EST


Hello,

I notice the patch 4feaef830de7ffdd8352e1fe14ad3bf13c9688f8 (dm space map common: fix to ensure new block isn't already in use) can explain the BUG_ON() in sm_disk_new_block().
However, I'm still confused since I can't find the code path in which 'begin' field was not being updated (as you say "increment of a data block reference count due to breaking sharing of a neighbour block in the same btree leaf").

What I found are as below:
break_sharing
 alloc_data_block
  dm_pool_alloc_data_block
   dm_sm_new_block
    sm_disk_new_block
     sm_ll_find_free_block
     smd->begin = *b + 1

May I bother you to list the path?

Thanks