]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
multi_dst_setup: Fix split size and data off by one
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Wed, 17 Sep 2025 01:00:50 +0000 (21:00 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 2 Oct 2025 17:28:04 +0000 (13:28 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
lib/maple_tree.c

index 633ee584e755b04fe3d4be65826eea775d6f6391..0a0ea2bf0ab5f123cfa7a0a9247209507ceb0922 100644 (file)
@@ -3128,14 +3128,14 @@ void multi_dst_setup(struct maple_copy *cp, struct ma_state *mas,
        /* Data is 1 indexed, every src has +1 added.  */
 
        if (cp->data <= mt_slots[mt]) {
-               cp->split = cp->data;
+               cp->split = cp->data - 1;
                cp->d_count = 1;
                goto node_setup;
        }
 
-       cp->split = cp->data / 2;
+       cp->split = (cp->data - 1) / 2;
        cp->d_count = 2;
-       if (cp->data < mt_slots[mt] * 2) {
+       if (cp->data - 1 < mt_slots[mt] * 2) {
                unsigned char off;
                unsigned char s;