Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

librbd: fail IO request when exclusive lock cannot be obtained #15860

Merged
merged 11 commits into from Jul 5, 2017

Conversation

Projects
None yet
2 participants
@dillaman
Copy link
Contributor

dillaman commented Jun 23, 2017

No description provided.

@dillaman dillaman force-pushed the dillaman:wip-20168 branch 2 times, most recently from 07d5307 to 37938f4 Jun 23, 2017

@trociny trociny self-assigned this Jun 23, 2017

dillaman added some commits Jun 14, 2017

librbd: convert ImageRequestWQ to template
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: exclusive lock failures should bubble up to IO
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: clean up variable naming in IO work queue
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: directly inform IO work queue when locks are required
Due to lock dependency issues between librbd locks and the the thread
pool lock, it's impossible to directly determine if the lock is
required within the _void_dequeue method. Therefore, this state needs
to be internally tracked by the work queue.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
test: unit tests for librbd IO work queue failure path
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
common: improve the ability to mock PointerWQ classes
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: cleanup interface between IO work queue and IO requests
This will help mock the testing of the IO work queue

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
qa/tasks/qemu: rbd cache is enabled by default
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
qa/suites/rbd: test dynamic features with cache disabled
The journaling logic follows different paths depending on the
cache configuration.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: properly close and destroy journal when dynamically disabled
Signed-off-by: Jason Dillaman <dillaman@redhat.com>

@dillaman dillaman force-pushed the dillaman:wip-20168 branch from 37938f4 to d8fd093 Jun 27, 2017

@dillaman

This comment has been minimized.

Copy link
Contributor Author

dillaman commented Jun 27, 2017

@trociny Fixed two bugs (1) disabling the journal was never destroying the Journal object and (2) I accidentally broke the blocked write handling. The changes are in the last two commits.

librbd: fix missing write block validation in IO work queue
Signed-off-by: Jason Dillaman <dillaman@redhat.com>

@dillaman dillaman force-pushed the dillaman:wip-20168 branch from d8fd093 to 8e76ebd Jun 27, 2017

@trociny

trociny approved these changes Jul 5, 2017

Copy link
Contributor

trociny left a comment

LGTM

@trociny trociny merged commit 2a9f56f into ceph:master Jul 5, 2017

4 checks passed

Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
default Build finished.
Details
make check make check succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.