]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: requeue pg waiters at the front of the finished queue
authorSage Weil <sage@inktank.com>
Mon, 18 Feb 2013 06:35:50 +0000 (22:35 -0800)
committerSage Weil <sage@inktank.com>
Tue, 19 Feb 2013 18:41:09 +0000 (10:41 -0800)
commit56c5a07708d52de1699585c9560cff8b4e993d0a
tree53c9e875057e3f987b860b47f9949627fab5c871
parentf1841e4189fce70ef5722d508289e516faa9af6a
osd: requeue pg waiters at the front of the finished queue

We could have a sequence like:

- op1
- notify
- op2

in the finished queue.  Op1 gets put on waiting_for_pg, the notify
creates the pg and requeues op1 (and the end), op2 is handled, and
finally op1 is handled.  That breaks ordering; see #2947.

Instead, when we wake up a pg, queue the waiting messages at the front
of the dispatch queue.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.h