summaryrefslogtreecommitdiffstats
path: root/src/librbd/AsyncObjectThrottle.cc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* librbd: swapped ThreadPool/ContextWQ for AsioEngineJason Dillaman2020-06-131-1/+1
| | | | | | | | | The majority of usage of ContextWQ has been switched to use the ASIO ContextWQ adapter class. The journal, RWL cache, and image update notifications remain the only remaining use of dedicated ThreadPools in librbd. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: s/Mutex/ceph::mutex/Kefu Chai2019-08-031-5/+6
| | | | Signed-off-by: Kefu Chai <kchai@redhat.com>
* librbd: allow ProgressCtx::update_progress to cancel maintenance opsJason Dillaman2019-07-241-1/+4
| | | | Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* rbd: Use ceph_assert for asserts.Adam C. Emerson2018-08-271-1/+1
| | | | Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
* librbd: do not instantiate templates while building testsKefu Chai2017-05-041-0/+2
| | | | | | | to avoid violation of ODR Fixes: http://tracker.ceph.com/issues/18938 Signed-off-by: Kefu Chai <kchai@redhat.com>
* librbd: optimize header file dependency & modify related file.shawn2016-06-221-2/+0
| | | | Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
* librbd: moved object name helpers to librbd::util namespaceJason Dillaman2015-12-151-1/+2
| | | | Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: simplify state machine lock assumptionsJason Dillaman2015-11-171-2/+3
| | | | | | | | | Use asynchronous callbacks to ensure that no locks are held when re-entering a state machine. This helps to avoid odd edge conditions where locks may or may not be held depending on whether a AIO operation was required. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: support templating of ImageCtx for async state machinesJason Dillaman2015-09-041-16/+16
| | | | | | | | This will facilitate the creation of unit test mocks to verify non-librados actions. The templates (by default) will be flagged as extern to avoid the translation unit bloat. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: AsyncObjectThrottle should always hold owner_lockJason Dillaman2015-06-041-3/+14
| | | | Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: give locks unique names to prevent false lockdep failuresJason Dillaman2015-06-041-1/+2
| | | | Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: AsyncRequest is now optional for AsyncObjectThrottleJason Dillaman2015-05-071-2/+3
| | | | Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: progress context is now optional for AsyncObjectThrottleJason Dillaman2015-05-071-2/+4
| | | | Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: cancel in-progress maint operations before releasing lockJason Dillaman2015-02-261-5/+11
| | | | | | | | | Ensure that all in-flight maintenance operations (resize, flatten) are not running when the exclusive lock is released. The lock will be released when transitioning to a snapshot, closing the image, or cooperatively when another client requests the lock. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: object map updates should use AIOJason Dillaman2015-01-291-9/+7
| | | | | | | | | | Update the existing AbstractWrite state machine to handle updating the object map before and after the object update. Also convert the resize/trim maintenance operations to use new state machines which handle the pre-/post-operation updates to the object map. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* librbd: Create async versions of long-running maintenance operationsJason Dillaman2015-01-251-0/+84
Resize and flatten now have async versions. The existing resize and flatten operations now use the async versions internally. The async operations will be used by the client holding the exclusive lock when it receives maintenance requests from other clients. Signed-off-by: Jason Dillaman <dillaman@redhat.com>