2023-01-13 08:30:05

by Li Lingfeng

[permalink] [raw]
Subject: Question about how to trigger BUG_ON() in sm_disk_new_block()

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