Here we fix two bugs in the precise discard implementation. The first one is handling of "nearby" tail and head paddings which are parts of the same disk block. Our block checking function is not idempotent, and repeatedly calling it on the same block results in a false-negative. The fix is to remember the last checked range (the tail padding) of an extent, and then use this information during checking the head padding of the next extent. Information about preceding blocks is never needed. The second one is handling of discard extents at the end of the partition: we must avoid checking blocks outside of the partition. The similar check already exists for the first erase unit in the partition. Ivan Shapovalov (3): reiser4: discard: signify non-idempotence of check_free_blocks() by changing its name. reiser4: discard: avoid checking same blocks multiple times. reiser4: discard: handle incomplete erase units at the end of a partition. fs/reiser4/discard.c | 194 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 165 insertions(+), 29 deletions(-) -- 2.3.0 -- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html