Hi Alex, > + spin_lock(&left_root->root_times_lock); > + ctransid = btrfs_root_ctransid(&left_root->root_item); > + spin_unlock(&left_root->root_times_lock); > + if (ctransid != left_start_ctransid) > + left_start_ctransid = 0; > + > + spin_lock(&right_root->root_times_lock); > + ctransid = > btrfs_root_ctransid(&right_root->root_item); > + spin_unlock(&right_root->root_times_lock); > + if (ctransid != right_start_ctransid) > + left_start_ctransid = 0; Shouldn't it be here right_start_ctransid=0? Otherwise, right_start_ctransid is pretty useless in this function.
> + > + if (!left_start_ctransid || !right_start_ctransid) { > + WARN(1, KERN_WARNING > + "btrfs: btrfs_compare_tree detected " > + "a change in one of the trees while " > + "iterating. This is probably a " > + "bug.\n"); > + ret = -EIO; > + goto out; > + } I am reading the code have more questions (and comments), but will send them all later. Alex. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html