So, this patchset uses your algorithm of padding/gluing extents to be discarded. I've added exact allocation primitives (is it what you've been talking about?), made the discard procedure allocate blocks of all paddings it performs and fixed an apparent bug in extent gluing which triggered the "edward-1635" assertion. Edward Shishkin (1): reiser4: iterate over extents in discard_atom Ivan Shapovalov (5): reiser4: block_alloc: split block allocation accounting logic into separate functions for re-use. reiser4: block_alloc, plugin/space/bitmap: add a method for "exact" block allocation. reiser4: discard: don't be overly smart when gluing extents in discard_sorted_merged_extents(). reiser4: blocknrlist: add operations blocknr_list_del() and blocknr_list_update_extent(). reiser4: discard: allocate extent paddings. fs/reiser4/block_alloc.c | 175 +++++++++---- fs/reiser4/block_alloc.h | 3 + fs/reiser4/blocknrlist.c | 38 +++ fs/reiser4/discard.c | 410 +++++++++++++++++++++++++++--- fs/reiser4/discard.h | 8 +- fs/reiser4/forward.h | 1 + fs/reiser4/init_super.c | 4 + fs/reiser4/plugin/space/bitmap.c | 94 +++++-- fs/reiser4/plugin/space/bitmap.h | 3 + fs/reiser4/plugin/space/space_allocator.h | 10 +- fs/reiser4/super.h | 4 + fs/reiser4/txnmgr.h | 6 + 12 files changed, 647 insertions(+), 109 deletions(-) -- 2.1.3 -- 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