History log of /drivers/block/drbd/drbd_interval.c
Revision Date Author Comments
e9f05b4cfed38d0e57b0a705a7f480cfbe0c3247 18-Sep-2014 Lai Jiangshan <laijs@cn.fujitsu.com> drbd: use RB_DECLARE_CALLBACKS() to define augment callbacks

The original code are the same as RB_DECLARE_CALLBACKS().

CC: Michel Lespinasse <walken@google.com>
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Andreas Gruenbacher <agruen@linbit.com>
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
82cfb90bc99d7b7e0ec62d0505b9d4f06805d5db 18-Sep-2014 Lai Jiangshan <laijs@cn.fujitsu.com> drbd: compute the end before rb_insert_augmented()

Commit 98683650 "Merge branch 'drbd-8.4_ed6' into
for-3.8-drivers-drbd-8.4_ed6" switches to the new augment API, but the
new API requires that the tree is augmented before rb_insert_augmented()
is called, which is missing.

So we add the augment-code to drbd_insert_interval() when it travels the
tree up to down before rb_insert_augmented(). See the example in
include/linux/interval_tree_generic.h or Documentation/rbtree.txt.

drbd_insert_interval() may cancel the insertion when traveling, in this
case, the just added augment-code does nothing before cancel since the
@this node is already in the subtrees in this case.

CC: Michel Lespinasse <walken@google.com>
CC: stable@kernel.org # v3.10+
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Andreas Gruenbacher <agruen@linbit.com>
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
d0e22a260c5142171c730436664febb045b9f0f0 17-Feb-2011 Andreas Gruenbacher <agruen@linbit.com> drbd: Iterate over all overlapping intervals in a tree

Add a macro and helper function for doing that.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
70b1987663851f4431a2f43d8ccefb7b6ac73331 04-Feb-2011 Andreas Gruenbacher <agruen@linbit.com> drbd: Improve the drbd_find_overlap() documentation

Describe how to reach any further overlapping intervals from the first
overlap found.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
3e05146f0a9f28ef5959403eabf3239869476315 27-Jan-2011 Andreas Gruenbacher <agruen@linbit.com> drbd: Remove redundant check from drbd_contains_interval()

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
6618bf16384463c0b97a5f5f1f0ce5276f5865fd 26-Jan-2011 Andreas Gruenbacher <agruen@linbit.com> drbd: Interval tree bugfix

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
0939b0e5cdeeafa0adf0150edd350092e47acc49 03-Jan-2011 Andreas Gruenbacher <agruen@linbit.com> drbd: Add interval tree data structure

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>