A method for unmapping logical block addresses for a system comprising a non-volatile memory and a volatile memory, wherein the volatile memory comprises: a plurality of validity counters associated with a plurality of super blocks of the non-volatile memory, a tree comprising a plurality of entries, wherein the tree provides a mapping between a plurality of logical block addresses and physical addresses of the non-volatile memory; and a bitmap (212, 400, 402, 404) for storing mapping statuses of the plurality of logical block addresses; the method comprising: receiving (704, 804) a request to unmap a logical block address of the plurality of logical block addresses; consulting the bitmap to determine whether the logical block address is unmapped; in response to determining that the logical block address is not unmapped, unmapping (714, 806) the logical block address in the bitmap; updating at least one of the plurality of validity counters by: consulting the tree in order to obtain a logical-to-physical mapping corresponding to the logical block address; locating an entry of the tree corresponding to the logical block address; using the entry, determining which super block stores data associated with the logical block address; updating the tree to reflect the unmapped logical block address only if tree memory usage decreases with the update; and updating the at least one of the plurality of validity counters associated with the determined super block. a plurality of validity counters associated with a plurality of super blocks of the non-volatile memory, a tree comprising a plurality of entries, wherein the tree provides a mapping between a plurality of logical block addresses and physical addresses of the non-volatile memory; and a bitmap (212, 400, 402, 404) for storing mapping statuses of the plurality of logical block addresses; the method comprising: receiving (704, 804) a request to unmap a logical block address of the plurality of logical block addresses; consulting the bitmap to determine whether the logical block address is unmapped; in response to determining that the logical block address is not unmapped, unmapping (714, 806) the logical block address in the bitmap; updating at least one of the plurality of validity counters by: consulting the tree in order to obtain a logical-to-physical mapping corresponding to the logical block address; locating an entry of the tree corresponding to the logical block address; using the entry, determining which super block stores data associated with the logical block address; updating the tree to reflect the unmapped logical block address only if tree memory usage decreases with the update; and updating the at least one of the plurality of validity counters associated with the determined super block. receiving (704, 804) a request to unmap a logical block address of the plurality of logical block addresses; consulting the bitmap to determine whether the logical block address is unmapped; in response to determining that the logical block address is not unmapped, unmapping (714, 806) the logical block address in the bitmap; updating at least one of the plurality of validity counters by: consulting the tree in order to obtain a logical-to-physical mapping corresponding to the logical block address; locating an entry of the tree corresponding to the logical block address; using the entry, determining which super block stores data associated with the logical block address; updating the tree to reflect the unmapped logical block address only if tree memory usage decreases with the update; and updating the at least one of the plurality of validity counters associated with the determined super block. consulting the tree in order to obtain a logical-to-physical mapping corresponding to the logical block address; locating an entry of the tree corresponding to the logical block address; using the entry, determining which super block stores data associated with the logical block address; updating the tree to reflect the unmapped logical block address only if tree memory usage decreases with the update; and updating the at least one of the plurality of validity counters associated with the determined super block.