diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2021-09-16 16:20:02 +0200 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2021-09-17 17:10:48 +0200 |
commit | 7f72c4a663b5677cb152912820bda82e55920cbb (patch) | |
tree | 687337efc88b5e5f5e9e9e99bd74da984291f81f /src/librados | |
parent | librados/IoCtxImpl: preserve extra_op_flags when duping (diff) | |
download | ceph-7f72c4a663b5677cb152912820bda82e55920cbb.tar.xz ceph-7f72c4a663b5677cb152912820bda82e55920cbb.zip |
librados/IoCtxImpl: apply extra_op_flags to watches and notifies
Prior to e468fc0d3b8c ("osdc/Objecter: remove pool_full_try
interface"), librados::IoCtx set_pool_full_try() affected watches and
notifies. Resurrect that to allow "rbd rm" to work when the metadata
pool is full.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'src/librados')
-rw-r--r-- | src/librados/IoCtxImpl.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc index 363ac7ee6d5..b9a73c87ca8 100644 --- a/src/librados/IoCtxImpl.cc +++ b/src/librados/IoCtxImpl.cc @@ -1651,7 +1651,8 @@ int librados::IoCtxImpl::watch(const object_t& oid, uint64_t *handle, version_t objver; C_SaferCond onfinish; - Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, 0); + Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, + extra_op_flags); *handle = linger_op->get_cookie(); if (internal) { linger_op->handle = InternalWatchInfo(this, oid, ctx, ctx2); @@ -1695,7 +1696,8 @@ int librados::IoCtxImpl::aio_watch(const object_t& oid, uint32_t timeout, bool internal) { - Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, 0); + Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, + extra_op_flags); c->io = this; Context *oncomplete = new C_aio_linger_Complete(c, linger_op, false); @@ -1781,7 +1783,8 @@ int librados::IoCtxImpl::notify(const object_t& oid, bufferlist& bl, bufferlist *preply_bl, char **preply_buf, size_t *preply_buf_len) { - Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, 0); + Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, + extra_op_flags); C_SaferCond notify_finish_cond; linger_op->on_notify_finish = @@ -1834,7 +1837,8 @@ int librados::IoCtxImpl::aio_notify(const object_t& oid, AioCompletionImpl *c, bufferlist *preply_bl, char **preply_buf, size_t *preply_buf_len) { - Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, 0); + Objecter::LingerOp *linger_op = objecter->linger_register(oid, oloc, + extra_op_flags); c->io = this; |