{"push_id":1129828430,"size":3,"distinct_size":3,"ref":"refs/heads/wang_dedupe_20160524","head":"e5df437c42612d22123c325d9c23af0761977414","before":"bb96f0cd1234593ddef0bb6d2b4df116c1352272","commits":[{"sha":"ca4a8347f5ce5822cc79e380c6f6d688fe82d56b","author":{"email":"f41a7033a6382ce00d6b717e37d942dbe3c9a107@cn.fujitsu.com","name":"Qu Wenruo"},"message":"btrfs: dedupe: Inband in-memory only de-duplication implement\n\nCore implement for inband de-duplication.\nIt reuse the async_cow_start() facility to do the calculate dedupe hash.\nAnd use dedupe hash to do inband de-duplication at extent level.\n\nThe work flow is as below:\n1) Run delalloc range for an inode\n2) Calculate hash for the delalloc range at the unit of dedupe_bs\n3) For hash match(duplicated) case, just increase source extent ref\n   and insert file extent.\n   For hash mismatch case, go through the normal cow_file_range()\n   fallback, and add hash into dedupe_tree.\n   Compress for hash miss case is not supported yet.\n\nCurrent implement restore all dedupe hash in memory rb-tree, with LRU\nbehavior to control the limit.\n\nSigned-off-by: Wang Xiaoguang <wangxg.fnst@cn.fujitsu.com>\nSigned-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>","distinct":true,"url":"https://api.github.com/repos/adam900710/linux/commits/ca4a8347f5ce5822cc79e380c6f6d688fe82d56b"},{"sha":"7d2d222cb80e5a975f827618114d900d1b4abba4","author":{"email":"cd191211253f6bdd87551d94afa5fd6260914732@cn.fujitsu.com","name":"Wang Xiaoguang"},"message":"btrfs: dedupe: Add ioctl for inband dedupelication\n\nAdd ioctl interface for inband dedupelication, which includes:\n1) enable\n2) disable\n3) status\n\nAnd a pseudo RO compat flag, to imply that btrfs now supports inband\ndedup.\nHowever we don't add any ondisk format change, it's just a pseudo RO\ncompat flag.\n\nAll these ioctl interface are state-less, which means caller don't need\nto bother previous dedupe state before calling them, and only need to\ncare the final desired state.\n\nFor example, if user want to enable dedupe with specified block size and\nlimit, just fill the ioctl structure and call enable ioctl.\nNo need to check if dedupe is already running.\n\nThese ioctls will handle things like re-configure or disable quite well.\n\nSigned-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>\nSigned-off-by: Wang Xiaoguang <wangxg.fnst@cn.fujitsu.com>","distinct":true,"url":"https://api.github.com/repos/adam900710/linux/commits/7d2d222cb80e5a975f827618114d900d1b4abba4"},{"sha":"e5df437c42612d22123c325d9c23af0761977414","author":{"email":"f41a7033a6382ce00d6b717e37d942dbe3c9a107@cn.fujitsu.com","name":"Qu Wenruo"},"message":"btrfs: relocation: Enhance error handling to avoid BUG_ON\n\nSince the introduce of btrfs dedupe tree, it's possible that balance can\nrace with dedupe disabling.\n\nWhen this happens, dedupe_enabled will make btrfs_get_fs_root() return\nPTR_ERR(-ENOENT).\nBut due to a bug in error handling branch, when this happens\nbackref_cache->nr_nodes is increased but the node is neither added to\nbackref_cache or nr_nodes decreased.\nCausing BUG_ON() in backref_cache_cleanup()\n\n[ 2611.668810] ------------[ cut here ]------------\n[ 2611.669946] kernel BUG at\n/home/sat/ktest/linux/fs/btrfs/relocation.c:243!\n[ 2611.670572] invalid opcode: 0000 [#1] SMP\n[ 2611.686797] Call Trace:\n[ 2611.687034]  [<ffffffffa01f71d3>]\nbtrfs_relocate_block_group+0x1b3/0x290 [btrfs]\n[ 2611.687706]  [<ffffffffa01cc177>]\nbtrfs_relocate_chunk.isra.40+0x47/0xd0 [btrfs]\n[ 2611.688385]  [<ffffffffa01cdb12>] btrfs_balance+0xb22/0x11e0 [btrfs]\n[ 2611.688966]  [<ffffffffa01d9611>] btrfs_ioctl_balance+0x391/0x3a0\n[btrfs]\n[ 2611.689587]  [<ffffffffa01ddaf0>] btrfs_ioctl+0x1650/0x2290 [btrfs]\n[ 2611.690145]  [<ffffffff81171cda>] ? lru_cache_add+0x3a/0x80\n[ 2611.690647]  [<ffffffff81171e4c>] ?\nlru_cache_add_active_or_unevictable+0x4c/0xc0\n[ 2611.691310]  [<ffffffff81193f04>] ? handle_mm_fault+0xcd4/0x17f0\n[ 2611.691842]  [<ffffffff811da423>] ? cp_new_stat+0x153/0x180\n[ 2611.692342]  [<ffffffff8119913d>] ? __vma_link_rb+0xfd/0x110\n[ 2611.692842]  [<ffffffff81199209>] ? vma_link+0xb9/0xc0\n[ 2611.693303]  [<ffffffff811e7e81>] do_vfs_ioctl+0xa1/0x5a0\n[ 2611.693781]  [<ffffffff8104e024>] ? __do_page_fault+0x1b4/0x400\n[ 2611.694310]  [<ffffffff811e83c1>] SyS_ioctl+0x41/0x70\n[ 2611.694758]  [<ffffffff816dfc6e>] entry_SYSCALL_64_fastpath+0x12/0x71\n[ 2611.695331] Code: ff 48 8b 45 bf 49 83 af a8 05 00 00 01 49 89 87 a0\n05 00 00 e9 2e fd ff ff b8 f4 ff ff ff e9 e4 fb ff ff 0f 0b 0f 0b 0f 0b\n0f 0b <0f> 0b 0f 0b 41 89 c6 e9 b8 fb ff ff e8 9e a6 e8 e0 4c 89 e7 44\n[ 2611.697870] RIP  [<ffffffffa01f6fc1>]\nrelocate_block_group+0x741/0x7a0 [btrfs]\n[ 2611.698818]  RSP <ffff88002a81fb30>\n\nThis patch will call remove_backref_node() in error handling branch, and\ncache the returned -ENOENT in relocate_tree_block() and continue\nbalancing.\n\nReported-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>\nSigned-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>","distinct":true,"url":"https://api.github.com/repos/adam900710/linux/commits/e5df437c42612d22123c325d9c23af0761977414"}]}
{"actor":{"display_login":"adam900710"}}