mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
Merge pull request #4589 from ceph/wip-11549
librbd: ignore lack of support for metadata on older OSDs Reviewed-by: Josh Durgin <jdurgin@redhat.com>
This commit is contained in:
commit
1c8978fdbd
@ -847,8 +847,11 @@ namespace librbd {
|
||||
map<string, bufferlist> pairs, res;
|
||||
r = cls_client::metadata_list(&md_ctx, header_oid, start, max_conf_items,
|
||||
&pairs);
|
||||
if (r < 0) {
|
||||
lderr(cct) << __func__ << " couldn't list conf metadatas: " << r
|
||||
if (r == -EOPNOTSUPP || r == -EIO) {
|
||||
ldout(cct, 10) << "config metadata not supported by OSD" << dendl;
|
||||
break;
|
||||
} else if (r < 0) {
|
||||
lderr(cct) << __func__ << " couldn't list config metadata: " << r
|
||||
<< dendl;
|
||||
break;
|
||||
}
|
||||
|
@ -1417,14 +1417,15 @@ reprotect_and_return_err:
|
||||
}
|
||||
|
||||
r = cls_client::metadata_list(&p_ioctx, p_imctx->header_oid, "", 0, &pairs);
|
||||
if (r < 0) {
|
||||
if (r < 0 && r != -EOPNOTSUPP && r != -EIO) {
|
||||
lderr(cct) << "couldn't list metadata: " << r << dendl;
|
||||
goto err_close_child;
|
||||
}
|
||||
r = cls_client::metadata_set(&c_ioctx, c_imctx->header_oid, pairs);
|
||||
if (r < 0) {
|
||||
lderr(cct) << "couldn't set metadata: " << r << dendl;
|
||||
goto err_close_child;
|
||||
} else if (r == 0 && !pairs.empty()) {
|
||||
r = cls_client::metadata_set(&c_ioctx, c_imctx->header_oid, pairs);
|
||||
if (r < 0) {
|
||||
lderr(cct) << "couldn't set metadata: " << r << dendl;
|
||||
goto err_close_child;
|
||||
}
|
||||
}
|
||||
|
||||
p_imctx->md_lock.get_write();
|
||||
@ -2658,14 +2659,15 @@ reprotect_and_return_err:
|
||||
map<string, bufferlist> pairs;
|
||||
|
||||
r = cls_client::metadata_list(&src->md_ctx, src->header_oid, "", 0, &pairs);
|
||||
if (r < 0) {
|
||||
if (r < 0 && r != -EOPNOTSUPP && r != -EIO) {
|
||||
lderr(cct) << "couldn't list metadata: " << r << dendl;
|
||||
return r;
|
||||
}
|
||||
r = cls_client::metadata_set(&dest->md_ctx, dest->header_oid, pairs);
|
||||
if (r < 0) {
|
||||
lderr(cct) << "couldn't set metadata: " << r << dendl;
|
||||
return r;
|
||||
} else if (r == 0 && !pairs.empty()) {
|
||||
r = cls_client::metadata_set(&dest->md_ctx, dest->header_oid, pairs);
|
||||
if (r < 0) {
|
||||
lderr(cct) << "couldn't set metadata: " << r << dendl;
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
SimpleThrottle throttle(src->concurrent_management_ops, false);
|
||||
|
Loading…
Reference in New Issue
Block a user