]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: attrs are obligatory param for ECBackend::get_hash_info()
authorRadosław Zarzyński <rzarzyns@redhat.com>
Tue, 7 Nov 2023 16:30:51 +0000 (17:30 +0100)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 10 Jan 2024 17:30:28 +0000 (17:30 +0000)
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
(cherry picked from commit 149c61c180fadeae7fe5a1574aa8eba01bc0550b)

src/osd/ECBackend.cc
src/osd/ECBackend.h

index 836bf96dde445308b12c2060e21576e09da96fb3..686e179f987a253e4171dc0e716c9bb58dd74290 100644 (file)
@@ -518,7 +518,7 @@ void ECBackend::continue_recovery_op(
 
       if (op.recovery_progress.first && op.obc) {
        /* We've got the attrs and the hinfo, might as well use them */
-       op.hinfo = get_hash_info(op.hoid, false, &op.obc->attr_cache);
+       op.hinfo = get_hash_info(op.hoid, false, op.obc->attr_cache);
        if (!op.hinfo) {
           derr << __func__ << ": " << op.hoid << " has inconsistent hinfo"
                << dendl;
@@ -1015,7 +1015,7 @@ void ECBackend::handle_sub_read(
         map<string, bufferlist, less<>> attrs;
         int r = PGBackend::objects_get_attrs(i->first, &attrs);
         if (r >= 0) {
-          hinfo = get_hash_info(i->first, false, &attrs);
+          hinfo = get_hash_info(i->first, false, attrs);
        } else {
           derr << "get_hash_info" << ": stat " << i->first << " failed: "
                << cpp_strerror(r) << dendl;
@@ -1377,7 +1377,7 @@ void ECBackend::submit_transaction(
     sinfo,
     *(op->t),
     [&](const hobject_t &i) {
-      ECUtil::HashInfoRef ref = get_hash_info(i, true, &op->t->obc_map[hoid]->attr_cache);
+      ECUtil::HashInfoRef ref = get_hash_info(i, true, op->t->obc_map[hoid]->attr_cache);
       if (!ref) {
        derr << __func__ << ": get_hash_info(" << i << ")"
             << " returned a null pointer and there is no "
@@ -1394,7 +1394,7 @@ void ECBackend::submit_transaction(
 
 
 ECUtil::HashInfoRef ECBackend::get_hash_info(
-  const hobject_t &hoid, bool create, const map<string,bufferlist,less<>> *attrs)
+  const hobject_t &hoid, bool create, const map<string,bufferlist,less<>>attrs)
 {
   dout(10) << __func__ << ": Getting attr on " << hoid << dendl;
   ECUtil::HashInfoRef ref = unstable_hashinfo_registry.lookup(hoid);
@@ -1409,9 +1409,8 @@ ECUtil::HashInfoRef ECBackend::get_hash_info(
     if (r >= 0) {
       dout(10) << __func__ << ": found on disk, size " << st.st_size << dendl;
       bufferlist bl;
-      ceph_assert(attrs);
-      map<string, bufferlist>::const_iterator k = attrs->find(ECUtil::get_hinfo_key());
-      if (k == attrs->end()) {
+      map<string, bufferlist>::const_iterator k = attrs.find(ECUtil::get_hinfo_key());
+      if (k == attrs.end()) {
         dout(5) << __func__ << " " << hoid << " missing hinfo attr" << dendl;
       } else {
         bl = k->second;
@@ -1677,7 +1676,7 @@ int ECBackend::be_deep_scrub(
     return -EINPROGRESS;
   }
 
-  ECUtil::HashInfoRef hinfo = get_hash_info(poid, false, &o.attrs);
+  ECUtil::HashInfoRef hinfo = get_hash_info(poid, false, o.attrs);
   if (!hinfo) {
     dout(0) << "_scan_list  " << poid << " could not retrieve hash info" << dendl;
     o.read_error = true;
index 27176bf18f927fb919c231c50ff5900f1f2fdb0d..a134ea58e695e53620761e7a9599048dfbddb204 100644 (file)
@@ -326,7 +326,7 @@ public:
   /// If modified, ensure that the ref is held until the update is applied
   SharedPtrRegistry<hobject_t, ECUtil::HashInfo> unstable_hashinfo_registry;
   ECUtil::HashInfoRef get_hash_info(const hobject_t &hoid, bool create,
-                                   const std::map<std::string, ceph::buffer::list, std::less<>> *attr);
+                                   const std::map<std::string, ceph::buffer::list, std::less<>>attr);
 
 public:
   ECBackend(