]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
rgw: let newer RGWs work with older OSDs re: cls-side filtering
authorJ. Eric Ivancich <ivancich@redhat.com>
Fri, 27 Sep 2019 16:05:17 +0000 (12:05 -0400)
committerJ. Eric Ivancich <ivancich@redhat.com>
Fri, 24 Jan 2020 19:32:39 +0000 (14:32 -0500)
commit5a67af53ec42001503c1a1dd586391f888062b30
treeb29ae16481f2a8d304a3b81d60a50bba413b228b
parentdd6cdd0a5ba628d6e002532c7d4b186db6f208c5
rgw: let newer RGWs work with older OSDs re: cls-side filtering

Previous commits moved bucket list filtering when a delimiter was
specified to the osd/cls layer. However, since rgw's are often
upgraded before osd's are, until we reach verison ceph version 16, an
rgw cannot assume that the osd/cls did the filtering. This is
addressed in the following ways....

First rgw_cls_list_ret now indicates whether filtering was done on the
osd/cls side.

And second, the old filtering code in the rgw is maintained in
RGWRados::Bucket::List::list_objects_ordered, so it can still be
triggered when all osd's are not doing the filtering.

Once we reach ceph version 16, and there is no chance that the rgw is
working with a osd running "young" version 14 code, we can remove the
backward compatibility code in
RGWRados::Bucket::List::list_objects_ordered.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
src/cls/rgw/cls_rgw_ops.h
src/rgw/rgw_admin.cc
src/rgw/rgw_bucket.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h