v1: - initial implementation (patches 1, 2) v2: - cleanup, fixes discovered in debug mode - saner logging - assertions - enablement of discard through mount option v3: - fixed the extent merge loop in discard_atom() v4: - squashed fix-ups into the main patch (with exception of reiser4_debug()) - fixed bug in usage of division ops discovered while building on ARM v5: - squashed mount option into the main patch - refactor based on discussion (see commit msg) - splitted off blocknr_list code - replaced ->discard_set with ->delete_set and ->aux_delete_set v6: - actualized in-code comments - removed uber-verbose debug statements - fixed code-to-patch mapping - moved blocknrlist and blocknrset to kmem_cache instead of kmalloc/kfree (in a separate commit for ease of reviewing) - dropped the RFC label v7: - squashed with PATCHv2 "perform discard before all deallocations" - dropped extent padding from discard_extent() - completed in-code comments, cosmetic fixups - added missing #include in block_alloc.c - added missing spin_unlock_atom() in discard_atom() Ivan Shapovalov (6): reiser4: fix reiser4_post_{commit,write_back}_hook() and their invocations. reiser4: make space_allocator's check_blocks() reusable. reiser4: add an implementation of "block lists", splitted off the discard code. reiser4: blocknr_list: use kmem_cache instead of kmalloc for allocating entries. reiser4: blocknr_set: use kmem_cache instead of kmalloc for allocating entries. reiser4: discard support: initial implementation using blocknr_list, without extent padding. fs/reiser4/Makefile | 2 + fs/reiser4/block_alloc.c | 62 +++--- fs/reiser4/block_alloc.h | 14 +- fs/reiser4/blocknrlist.c | 336 ++++++++++++++++++++++++++++++ fs/reiser4/blocknrset.c | 34 ++- fs/reiser4/dformat.h | 2 + fs/reiser4/discard.c | 179 ++++++++++++++++ fs/reiser4/discard.h | 42 ++++ fs/reiser4/forward.h | 1 + fs/reiser4/init_super.c | 2 + fs/reiser4/plugin/space/bitmap.c | 82 +++++--- fs/reiser4/plugin/space/bitmap.h | 2 +- fs/reiser4/plugin/space/space_allocator.h | 4 +- fs/reiser4/super.h | 4 +- fs/reiser4/super_ops.c | 14 ++ fs/reiser4/txnmgr.c | 90 +++++++- fs/reiser4/txnmgr.h | 60 +++++- fs/reiser4/wander.c | 6 +- fs/reiser4/znode.c | 9 +- 19 files changed, 859 insertions(+), 86 deletions(-) create mode 100644 fs/reiser4/blocknrlist.c create mode 100644 fs/reiser4/discard.c create mode 100644 fs/reiser4/discard.h -- 2.0.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