Hi Joe, In the commit be500ed721a6ec8d49bf0814c277ce7162acee0e, the interface of sm_disk_{inc, dec}_blocks() of dm-space-map was redesigned. The modified version of sm_disk_dec_blocks() changes nr_allocated_this_transaction right after returning from sm_ll_dec(), without checking on whether the released blocks were also free in the previous transaction or not, which was checked in the previous version. This might cause a negative value be assigned to nr_allocated_this_transaction which is declared as an unsigned integer when a discard is performed. Though the result of calculating the number of free blocks in sm_disk_get_nr_free() is still correct due to the unsigned integer arithmetic, I'm wondering whether it is tend to deal with it in this way, or there should have some preliminaries before the update to nr_allocated_this_transaction? I'm willing to help if there is any modification needed, or have a comment on it to avoid possible misuse in the future. Thanks, Ryan