David Disseldorp
2014-Feb-07 10:35 UTC
[PATCH v3 0/3] __btrfs_drop_extents() BUG_ON reproducer
This patch-set provides a reproducer for hitting the 3.14.0-rc1 BUG_ON() at: 692 int __btrfs_drop_extents(struct btrfs_trans_handle *trans, ... 839 /* 840 * | ---- range to drop ----- | 841 * | -------- extent -------- | 842 */ 843 if (start <= key.offset && end < extent_end) { 844 BUG_ON(extent_type == BTRFS_FILE_EXTENT_INLINE); 845 846 memcpy(&new_key, &key, sizeof(new_key)); The first patch adds a small cloner binary which is used by btrfs/035 to dispatch BTRFS_IOC_CLONE_RANGE requests. This workload resembles that of Samba's vfs_btrfs module, when a Windows client restores a file from a shadow-copy (snapshot) using server-side copy requests. Changes since V2: - Remove explicit write error checks Changes since V1: - Use strtoull instead of atoi - Print error conditions in cloner - Check for cloner binary before running test - Continue test on failure - Add cloner to .gitignore Feedback appreciated. Cheers, David .gitignore | 1 + configure.ac | 1 + src/Makefile | 2 +- src/cloner.c | 192 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/btrfs/035 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/btrfs/035.out | 3 +++ tests/btrfs/group | 1 + 7 files changed, 276 insertions(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html