]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix bucket index list minor calculation bug
authorJ. Eric Ivancich <ivancich@redhat.com>
Wed, 12 Jan 2022 18:41:42 +0000 (13:41 -0500)
committerDan van der Ster <daniel.vanderster@cern.ch>
Tue, 1 Mar 2022 10:31:01 +0000 (11:31 +0100)
When "bucket index list" traverses the different regions in the bucket
index assembling the output, it miscalculates how many entries to ask
for at one point. This fixes that.

This fixes previous "rgw: bucket index list can produce I/O errors".

Credit for finding this bug goes to Soumya Koduri <skoduri@redhat.com>.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit aa7605151f0a5f467d50f13f27c7aef42a40cc39)

src/cls/rgw/cls_rgw.cc

index 10bc040ad68d8c8832b5e4ad47a8e9da769d0081..325bb38093199587053dc3757a06a641dede7e02 100644 (file)
@@ -2909,7 +2909,7 @@ static int rgw_bi_list_op(cls_method_context_t hctx,
   }
 
   if (!more) {
-    ret = list_plain_entries(hctx, op.name_filter, op.marker, max,
+    ret = list_plain_entries(hctx, op.name_filter, op.marker, max - count,
                             &op_ret.entries, &more, PlainEntriesRegion::High);
     if (ret < 0) {
       CLS_LOG(0, "ERROR: %s: list_plain_entries (high) returned ret=%d, marker=\"%s\", filter=\"%s\", max=%d",