]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc/release-notes: add/link complete changelogs
authorSage Weil <sage@inktank.com>
Fri, 3 May 2013 18:04:35 +0000 (11:04 -0700)
committerSage Weil <sage@inktank.com>
Fri, 3 May 2013 18:04:35 +0000 (11:04 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
doc/changelog/v0.56.4.txt [new file with mode: 0644]
doc/changelog/v0.56.5.txt [new file with mode: 0644]
doc/release-notes.rst

diff --git a/doc/changelog/v0.56.4.txt b/doc/changelog/v0.56.4.txt
new file mode 100644 (file)
index 0000000..f48fd83
--- /dev/null
@@ -0,0 +1,1126 @@
+commit 63b0f854d1cef490624de5d6cf9039735c7de5ca
+Author: Gary Lowell <gary.lowell@inktank.com>
+Date:   Mon Mar 25 11:02:31 2013 -0700
+
+    v0.56.4
+
+commit 90ab120a3c08f30654207c9c67fb0a4ff1476aff
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Mon Mar 25 09:50:33 2013 -0700
+
+    rgw: bucket index ops on system buckets shouldn't do anything
+    
+    Fixes: #4508
+    Backport: bobtail
+    On certain bucket index operations we didn't check whether
+    the bucket was a system bucket, which caused the operations
+    to fail. This triggered an error message on bucket removal
+    operations.
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 70e0ee8ba955322832f0c366537ddf7a0288761e)
+
+commit b8657fa08d0fe176c71a60c1654c53c3156a9c53
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Mon Feb 25 15:02:50 2013 -0800
+
+    systest: restrict list error acceptance
+    
+    Only ignore errors after the midway point if the midway_sem_post is
+    defined.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 5b24a68b6e7d57bac688021b822fb2f73494c3e9)
+
+commit 5af3d64f62b30cbaac13ccc7c23fc884ee1b7ae3
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Mon Feb 25 14:55:34 2013 -0800
+
+    systest: fix race with pool deletion
+    
+    The second test have pool deletion and object listing wait on the same
+    semaphore to connect and start. This led to errors sometimes when the
+    pool was deleted before it could be opened by the listing process. Add
+    another semaphore so the pool deletion happens only after the listing
+    has begun.
+    
+    Fixes: #4147
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit b0271e390564119e998e18189282252d54f75eb6)
+
+commit 3569489b541ac0643520d20b08c788c26dfaff7f
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Mar 19 14:26:16 2013 -0700
+
+    os/FileJournal: fix aio self-throttling deadlock
+    
+    This block of code tries to limit the number of aios in flight by waiting
+    for the amount of data to be written to grow relative to a function of the
+    number of aios.  Strictly speaking, the condition we are waiting for is a
+    function of both aio_num and the write queue, but we are only woken by
+    changes in aio_num, and were (in rare cases) waiting when aio_num == 0 and
+    there was no possibility of being woken.
+    
+    Fix this by verifying that aio_num > 0, and restructuring the loop to
+    recheck that condition on each wakeup.
+    
+    Fixes: #4079
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit e5940da9a534821d0d8f872c13f9ac26fb05a0f5)
+
+commit 664ffa7d2178e486b00fa0706067f19b1bb9ab82
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 22 13:25:49 2013 -0700
+
+    common/MemoryModel: remove logging to /tmp/memlog
+    
+    This was a hack for dev purposes ages ago; remove it.  The predictable
+    filename is a security issue.
+    
+    CVE-2013-1882
+    
+    Reported-by: Michael Scherer <misc@zarb.org>
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit c524e2e01da41ab5b6362c117939ea1efbd98095)
+
+commit 901fa435bb4be29b72cec39e5ff77570d13cbc6c
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 22 13:25:43 2013 -0700
+
+    init-ceph: clean up temp ceph.conf filename on exit
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit 6a7ad2eac1db6abca3d7edb23ca9b80751400a23)
+
+commit 951f7e562afb4ae91b8d037ef793a96779461e96
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 22 13:25:33 2013 -0700
+
+    init-ceph: push temp conf file to a unique location on remote host
+    
+    The predictable file name is a security problem.
+    
+    CVE-2013-1882
+    
+    Reported-by: Michael Scherer <misc@zarb.org>
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit 051734522fea92878dd8139f28ec4e6b01371ede)
+
+commit dd670afccfd3ae58c03ea3b4c213dd8db22f618e
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 22 13:25:23 2013 -0700
+
+    mkcephfs: make remote temp directory name unique
+    
+    The predictable file name is a security problem.
+    
+    CVE-2013-1882
+    
+    Reported-by: Michael Scherer <misc@zarb.org>
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit f463ef78d77b11b5ad78b31e9a3a88d0a6e62bca)
+
+commit 1cd51eb63a91fa0aa395c41572cfee4d53fbc7f5
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Fri Mar 22 13:51:14 2013 -0700
+
+    PG::GetMissing: need to check need_up_thru in MLogRec handler
+    
+    Backport: bobtail
+    Fixes: #4534
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 4fe4deafbe1758a6b3570048aca57485bd562440)
+
+commit d866814285667c7f9cd9205dca6cf95f3634c5fc
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Fri Mar 22 13:48:49 2013 -0700
+
+    PG,osd_types: improve check_new_interval debugging
+    
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit d611eba9caf45f2d977c627b123462a073f523a4)
+
+commit fc3406f395103737e5784611e2b38fd1c4f26369
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Tue Mar 5 16:06:20 2013 -0800
+
+    FileStore: fix reversed collection_empty return value
+    
+    Backport: bobtail
+    Fixes: #4380
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 7a434d10da0f77e1b329de0b06b6645cd73cc81b)
+    
+    Conflicts:
+       src/os/FileStore.cc
+
+commit 9f7c6ad395653b1039ea957cfaa7689699f510e7
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Mon Feb 11 12:52:07 2013 -0800
+
+    FileStore: set replay guard on create_collection
+    
+    This should prevent sequences like:
+    
+    rmcoll a
+    mkcoll a
+    touch a foo
+    <crash>
+    
+    from causing trouble by preventing the rmcoll
+    and mkcoll from being replayed.
+    
+    Fixes: 4064
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 411770c45734c9827745ddc4018d86c14f2858a6)
+
+commit 9932c9f0a0503f1902549a3c39e5d51488fff3ef
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Mon Feb 11 12:24:14 2013 -0800
+
+    FileStore: _split_collection should not create the collection
+    
+    This will simplify adding a replay guard to create_collection.
+    
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit b184ff581a08c9e6ce5b858f06ccbe9d0e2a170b)
+
+commit 7e7ea8266ee45d96863e1edc5a567dcc2977680c
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Feb 22 15:15:27 2013 -0800
+
+    client: use 4MB f_bsize and f_frsize for statfs
+    
+    Old stat(1) reports:
+    
+      Block size: 1048576    Fundamental block size: 1048576
+    
+    and the df(1) arithmetic works out.  New stat(1) reports:
+    
+      Block size: 1048576    Fundamental block size: 4096
+    
+    which is what we are shoving into statvfs, but we have the b_size and
+    fr_size arithmetic swapped.  However, doing the *correct* reporting would
+    then break the old stat by making both sizes appear to be 4KB (or
+    whatever).
+    
+    Sidestep the issue by making *both* values 4MB.. which is both large enough
+    to report large FS sizes, and also the default stripe size and thus a
+    "reasonable" value to report for a block size.
+    
+    Perhaps in the future, when we no longer care about old userland, we can
+    report the page size for f_bsize, which is probably the "most correct"
+    thing to do.
+    
+    Fixes: #3794.  See also #3793.
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 7c94083643891c9d66a117352f312b268bdb1135)
+
+commit 66dca7730006dffbce12e6b27016ea5469b7691b
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Feb 18 17:39:46 2013 -0800
+
+    os/FileStore: check replay guard on src for collection rename
+    
+    This avoids a problematic sequence like:
+    
+         - rename A/ -> B/
+         - remove B/1...100
+         - destroy B/
+         - create A/
+         - write A/101...
+         <crash>
+         - replay A/ -> B/
+         - remove B/1...100  (fails but tolerated)
+         - destroy B/        (fails with ENOTEMPTY)
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 5fc83c8d9887d2a916af11436ccc94fcbfe59b7a)
+
+commit ea570591b0d9dda102bece0f4cc7d263c3e2a3b0
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Fri Feb 22 14:12:28 2013 -0800
+
+    PG::proc_replica_log: oinfo.last_complete must be *before* first entry in omissing
+    
+    Fixes: #4189
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 2dae6a68ee85a20220ee940dbe33a2144d43457b)
+
+commit aa38d87c6237ccfb8b3b03bc7c28dcadb927237b
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 21 17:55:21 2013 -0800
+
+    osd/PG: fix typo, missing -> omissing
+    
+    From ce7ffc34408bf32c66dc07e6f42d54b7ec489d41.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit dc181224abf6fb8fc583730ae3d90acdf0b80f39)
+
+commit ac914834ba4fb0e4770f63c60713be7a48aa3fa1
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Feb 21 15:31:36 2013 -0800
+
+    PG::proc_replica_log: adjust oinfo.last_complete based on omissing
+    
+    Otherwise, search_for_missing may neglect to check the missing
+    set for some objects assuming that if the need version is
+    prior to last_complete, the replica must have it.
+    
+    Fixes: #4994
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit ce7ffc34408bf32c66dc07e6f42d54b7ec489d41)
+
+commit 7f39704b0903fb11e3f1e102599bf0c540f93623
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Feb 9 00:05:33 2013 -0800
+
+    osd: fix load_pgs collection handling
+    
+    On a _TEMP pg, is_pg() would succeed, which meant we weren't actually
+    hitting the cleanup checks.  Instead, restructure this loop as positive
+    checks and handle each type of collection we understand.
+    
+    This fixes _TEMP cleanup.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit b19b6dced85617d594c15631571202aab2f94ae8)
+
+commit 0a09be99f3e9d2b68a052ff63ea858a7c8e5626c
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Feb 9 00:04:29 2013 -0800
+
+    osd: fix load_pgs handling of pg dirs without a head
+    
+    If there is a pgid that passes coll_t::is_pg() but there is no head, we
+    will populate the pgs map but then fail later when we try to do
+    read_state.  This is a side-effect of 55f8579.
+    
+    Take explicit note of _head collections we see, and then warn when we
+    find stray snap collections.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 1f80a0b576c0af1931f743ad988b6293cbf2d6d9)
+
+commit 2dc25dfd47de8d3602bdb3699c82b8b118b0fb28
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Feb 7 13:34:47 2013 -0800
+
+    OSD::load_pgs: first scan colls before initing PGs
+    
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 073f58ede2e473af91f76d01679631c169274af7)
+
+commit 2fd8db29ccf56fd5473826f20e351edfe200419d
+Author: David Zafman <david.zafman@inktank.com>
+Date:   Tue Jan 8 19:24:13 2013 -0800
+
+    osd: Add digest of omap for deep-scrub
+    
+    Add ScrubMap encode/decode v4 message with omap digest
+    Compute digest of header and key/value.  Use bufferlist
+    to reflect structure and compute as we go, clearing
+    bufferlist to reduce memory usage.
+    
+    Signed-off-by: David Zafman <david.zafman@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 509a93e89f04d7e9393090563cf7be8e0ea53891)
+
+commit ee59f517ccc195e591e0b1b6ddf6d1d054c4e2fd
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Fri Mar 15 15:13:46 2013 -0700
+
+    OSD: split temp collection as well
+    
+    Otherwise, when we eventually remove the temp collection, there might be
+    objects in the temp collection which were independently pulled into the child
+    pg collection.  Thus, removing the old stale parent link from its temp
+    collection also blasts the omap entries and snap mappings for the real child
+    object.
+    
+    Backport: bobtail
+    Fixes: #4452
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit f8d66e87a5c155b027cc6249006b83b4ac9b6c9b)
+
+commit 7ec68e2d45b431a3a77458939622e6ea1e396d0e
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Mar 14 19:59:36 2013 -0700
+
+    PG: ignore non MISSING pg query in ReplicaActive
+    
+    1) Replica sends notify
+    2) Prior to processing notify, primary queues query to replica
+    3) Primary processes notify and activates sending MOSDPGLog
+    to replica.
+    4) Primary does do_notifies at end of process_peering_events
+    and sends to Query.
+    5) Replica sees MOSDPGLog and activates
+    6) Replica sees Query and asserts.
+    
+    In the above case, the Replica should simply ignore the old
+    Query.
+    
+    Fixes: #4050
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 8222cbc8f35c359a35f8381ad90ff0eed5615dac)
+
+commit b279b148b38c755d2dcca6524d7b8a95daf123a0
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Wed Mar 13 16:04:23 2013 -0700
+
+    FileJournal: queue_pos \in [get_top(), header.max_size)
+    
+    If queue_pos == header.max_size when we create the entry
+    header magic, the entry will be rejected at get_top() on
+    replay.
+    
+    Fixes: #4436
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit de8edb732e3a5ce4471670e43cfe6357ae6a2758)
+
+commit 56e0a129b0d9ad463f4300999ed2c15173cbe603
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Mar 14 18:52:02 2013 -0700
+
+    OSD: expand_pg_num after pg removes
+    
+    Otherwise:
+    1) expand_pg_num removes a splitting pg entry
+    2) peering thread grabs pg lock and starts split
+    3) OSD::consume_map grabs pg lock and starts removal
+    
+    At step 2), we run afoul of the assert(is_splitting)
+    check in split_pgs.  This way, the would be splitting
+    pg is marked as removed prior to the splitting state
+    being updated.
+    
+    Backport: bobtail
+    Fixes: #4449
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit f1b031b3cf195cf6df3d3c47c7d606fba63ed4c4)
+
+commit d6e678a62950ccc16d010a76500705e176ba9c73
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Feb 11 06:23:54 2013 -0800
+
+    osd: update snap collections for sub_op_modify log records conditionaly
+    
+    The only remaining caller is sub_op_modify().  If we do have a non-empty
+    op transaction, we want to do this update, regardless of what we think
+    last_backfill is (our notion may be not completely in sync with the
+    primary).  In particular, our last_backfill may be the same object but
+    a different snapid, but the primary disagrees and is pushing an op
+    transaction through.
+    
+    Instead, update the collections if we have a non-empty transaction.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 31e911b63d326bdd06981ec4029ad71b7479ed70)
+
+commit 51c2c4d7ccb25617967689d7e531eb145ee7011d
+Author: Sage Weil <sage@inktank.com>
+Date:   Sun Feb 10 17:02:45 2013 -0800
+
+    osd: include snaps in pg_log_entry_t::dump()
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 715d8717a0e8a08fbe97a3e7d3ffd33aa9529d90)
+
+commit f0bf68ff500f7337103aef2a9d6d10c3597e410f
+Author: Sage Weil <sage@inktank.com>
+Date:   Sun Feb 10 16:59:48 2013 -0800
+
+    osd: unconditionally encode snaps buffer
+    
+    Previously we would only encode the updated snaps vector for CLONE ops.
+    This doesn't work for MODIFY ops generated by the snap trimmer, which
+    may also adjust the clone collections.  It is also possible that other
+    operations may need to populate this field in the future (e.g.,
+    LOST_REVERT may, although it currently does not).
+    
+    Fixes: #4071, and possibly #4051.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 54b6dd924fea3af982f3d729150b6449f318daf2)
+
+commit aa74fabd90b776e9938f3d59ea5ed04bd4027dbb
+Author: Sage Weil <sage@inktank.com>
+Date:   Sun Feb 10 10:57:12 2013 -0800
+
+    osd: improve debug output on snap collections
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 8b05492ca5f1479589bb19c1ce058b0d0988b74f)
+
+commit a30903c6adaa023587d3147179d6038ad37ca520
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Mar 7 12:53:51 2013 -0800
+
+    PG: check_recovery_sources must happen even if not active
+    
+    missing_loc/missing_loc_sources also must be cleaned up
+    if a peer goes down during peering:
+    
+    1) pg is in GetInfo, acting is [3,1]
+    2) we find object A on osd [0] in GetInfo
+    3) 0 goes down, no new peering interval since it is neither up nor
+    acting, but peer_missing[0] is removed.
+    4) pg goes active and try to pull A from 0 since missing_loc did not get
+    cleaned up.
+    
+    Backport: bobtail
+    Fixes: #4371
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit de22b186c497ce151217aecf17a8d35cdbf549bb)
+
+commit 19f6df28337307ce6d8617524f88f222c0ffcab3
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Tue Mar 5 15:49:26 2013 -0800
+
+    HashIndex: _collection_list_partial must tolerate NULL next
+    
+    Backport: bobtail
+    Fixes: #4379
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit ce4432adc67dc2fc06dd21ea08e59d179496bcc6)
+
+commit 1b5c1564bad3574db257cb17d48190958d870f51
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Tue Mar 5 14:35:39 2013 -0800
+
+    OSD: lock not needed in ~DeletingState()
+    
+    No further refs to the object can remain at this point.
+    Furthermore, the callbacks might lock mutexes of their
+    own.
+    
+    Backport: bobtail
+    Fixes: #4378
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit e4bf1bcab159d7c5b720f5da01877c0f67c16d16)
+
+commit 50d2d4a77f339d489703c1125dc5c1159d08ca8a
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Sun Mar 10 12:50:01 2013 -0700
+
+    ReplicatedPG: don't leak reservation on removal
+    
+    Fixes: 4431
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 32bf131e0141faf407b5ff993f75f97516b27c12)
+    
+    Conflicts:
+    
+       src/osd/ReplicatedPG.cc
+
+commit c6b7c4be3fc44d065c29ea76b744b39272c2ba05
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Tue Mar 12 12:56:01 2013 -0700
+
+    rgw: set up curl with CURL_NOSIGNAL
+    
+    Fixes: #4425
+    Backport: bobtail
+    Apparently, libcurl needs that in order to be thread safe. Side
+    effect is that if libcurl is not compiled with c-ares support,
+    domain name lookups are not going to time out.
+    Issue affected keystone.
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 88725316ddcfa02ff110e659f7a8131dc1ea2cfc)
+
+commit 8c16a376a9cbfd6812824fb71e2cc9935e14e667
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 8 08:56:44 2013 -0800
+
+    osd: mark down connections from old peers
+    
+    Close out any connection with an old peer.  This avoids a race like:
+    
+    - peer marked down
+    - we get map, mark down the con
+    - they reconnect and try to send us some stuff
+    - we share our map to tell them they are old and dead, but leave the con
+      open
+    ...
+    - peer marks itself up a few times, eventually reuses the same port
+    - sends messages on their fresh con
+    - we discard because of our old con
+    
+    This could cause a tight reconnect loop, but it is better than wrong
+    behavior.
+    
+    Other possible fixes:
+     - make addr nonce truly unique (augment pid in nonce)
+     - make a smarter 'disposable' msgr state (bleh)
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 881e9d850c6762290f8be24da9e74b9dc112f1c9)
+
+commit 1affc8b6e8cb82510aed524f90a6165c6edf7513
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 8 08:53:40 2013 -0800
+
+    osd/PG: rename require_same_or_newer_map -> is_same_or_newer_map
+    
+    This avoids confusion with the OSD method of the same name, and better
+    matches what the function tests (and does not do).
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit ba7e815a18cad110525f228db1b3fe39e011409e)
+    
+    Conflicts:
+    
+       src/osd/ReplicatedPG.cc
+
+commit 7ca55d36c4007be5880102fa1ed314d3d66e9d87
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 11 16:25:16 2013 -0700
+
+    log: drop default 'log max recent' from 100k -> 10k
+    
+    Use less memory.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit c021c5ccf0c063cccd7314964420405cea6406de)
+
+commit 33ac786ddc14d0904f4835cbf684a51f4815d45b
+Author: Jan Harkes <jaharkes@cs.cmu.edu>
+Date:   Fri Mar 8 12:45:57 2013 -0500
+
+    Fix radosgw actually reloading after rotating logs.
+    
+    The --signal argument to Debian's start-stop-daemon doesn't
+    make it send a signal, but defines which signal should be send
+    when --stop is specified.
+    
+    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
+    (cherry picked from commit 44f1cc5bc42f9bb6d5a386037408d2de17dc5413)
+
+commit 6838b8db9a3d4ceaf121a261e2ded4af9bfeaeb9
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 6 17:42:03 2013 -0800
+
+    common: reduce default in-memory logs for non-daemons
+    
+    The default of 100000 can result in hundreds of MBs of extra memory
+    used. This was most obvious when using librbd with caching enabled,
+    since there was a dout(0) accidentally left in the ObjectCacher.
+    
+    refs: #4352
+    backport: bobtail
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 7c208d2f8e3f28f4055a4ae51eceae892dcef1dc)
+
+commit f80f64cf024bd7519d5a1fb2a5698db97a003ce8
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Feb 22 17:01:53 2013 -0800
+
+    osd: allow (some) log trim when degraded, but not during recovery
+    
+    We allow some trim during degraded, although we keep more entries around to
+    improve our chances of a restarting OSD of doing log-based recovery.
+    
+    Still disallow during recovery...
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 6d89b34e5608c71b49ef33ab58340e90bd8da6e4)
+
+commit e502a65da1779564059e74c09ab87aca1d901bd2
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Feb 25 15:33:35 2013 -0800
+
+    osd: restructure calc_trim
+    
+    No functional change, except that we log more debug, yay!
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 86df164d04f6e31a0f20bbb94dbce0599c0e8b3d)
+
+commit 3a3123033d7d9e1574be3fb18c807eeb0f4678eb
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Feb 22 16:48:02 2013 -0800
+
+    osd: allow pg log trim during (non-classic) scrub
+    
+    Chunky (and deep) scrub do not care about PG log trimming.  Classic scrub
+    still does.
+    
+    Deep scrub can take a long time, so not trimming the log during that period
+    may eat lots of RAM; avoid that!
+    
+    Might fix: #4179
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 0ba8db6b664205348d5499937759916eac0997bf)
+
+commit cde0f224dac21b2e17e06d396ac52e18034a4262
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 28 12:46:00 2013 -0800
+
+    msgr: drop messages on cons with CLOSED Pipes
+    
+    Back in commit 6339c5d43974f4b495f15d199e01a141e74235f5, we tried to make
+    this deal with a race between a faulting pipe and new messages being
+    queued.  The sequence is
+    
+    - fault starts on pipe
+    - fault drops pipe_lock to unregister the pipe
+    - user (objecter) queues new message on the con
+    - submit_message reopens a Pipe (due to this bug)
+    - the message managed to make it out over the wire
+    - fault finishes faulting, calls ms_reset
+    - user (objecter) closes the con
+    - user (objecter) resends everything
+    
+    It appears as though the previous patch *meant* to drop *m on the floor in
+    this case, which is what this patch does.  And that fixes the crash I am
+    hitting; see #4271.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 0f42eddef5da6c1babe9ed51ceaa3212a42c2ec4)
+
+commit 2fa2546c90e7a6eab9a3de7ab4e4271f8b25bad6
+Author: Concubidated <tyler.brekke@inktank.com>
+Date:   Fri Mar 8 13:44:39 2013 -0800
+
+    Fix output of 'ceph osd tree --format=json'
+    
+    Signed-off-by: Tyler Brekke <tyler.brekke@inktank.com>
+    (cherry picked from commit 9bcba944c6586ad5f007c0a30e69c6b5a886510b)
+
+commit b70e2c270b9eb3fce673b7e51b527ebf88214f14
+Author: Sam Lang <sam.lang@inktank.com>
+Date:   Tue Feb 12 11:32:29 2013 -0600
+
+    deb:  Add ceph-coverage to ceph-test deb package
+    
+    Teuthology uses the ceph-coverage script extensively
+    and expects it to be installed by the ceph task.  Add
+    the script to the ceph-test debian package so that it
+    gets installed for that use case.
+    
+    Signed-off-by: Sam Lang <sam.lang@inktank.com>
+    (cherry picked from commit 376cca2d4d4f548ce6b00b4fc2928d2e6d41038f)
+
+commit ca9aac785eb9e2d1ee955792d2f4d1d911727fb3
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Fri Feb 22 15:04:37 2013 -0800
+
+    rgw: set attrs on various list bucket xml results (swift)
+    
+    Fixes: #4247
+    The list buckets operation was missing some attrs on the different
+    xml result entities. This fixes it.
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    (cherry picked from commit 4384e59ad046afc9ec53a2d2f1fff6a86e645505)
+
+commit e39660c901756d5e722308e72a9d8ee4893f70f7
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Fri Feb 22 15:02:02 2013 -0800
+
+    formatter: add the ability to dump attrs in xml entities
+    
+    xml entities may have attrs assigned to them. Add the ability
+    to set them. A usage example:
+    
+    formatter->open_array_section_with_attrs("container",
+         FormatterAttrs("name", "foo", NULL));
+    
+    This will generate the following xml entity:
+    <container name="foo">
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 7cb6ee28073824591d8132a87ea09a11c44efd66)
+    
+    Conflicts:
+       src/common/Formatter.cc
+
+commit 0304b85e5c12c30459b94ec5d332dfaa04d20d5b
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Wed Mar 6 19:32:21 2013 -0800
+
+    rgw: don't iterate through all objects when in namespace
+    
+    Fixes: #4363
+    Backport: argonaut, bobtail
+    When listing objects in namespace don't iterate through all the
+    objects, only go though the ones that starts with the namespace
+    prefix
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    (cherry picked from commit 6669e73fa50e3908ec825ee030c31a6dbede6ac0)
+
+commit d0dafaa77f96fa91785df0796806ea07fd93f319
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Feb 28 12:13:45 2013 -0800
+
+    ObjectCacher: fix debug log level in split
+    
+    Level 0 should never be used for this kind of debugging.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit cb3ee33532fb60665f39f6ccb1d69d67279fd5e1)
+
+commit ff014ed26bfa4fbf40acffec4eb4805b95a9982c
+Author: Dan Mick <dmick@danceorelse.org>
+Date:   Thu Jan 24 13:38:25 2013 -0800
+
+    rados: remove unused "check_stdio" parameter
+    
+    Signed-off-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit bb860e49a7faeaf552538a9492ef0ba738c99760)
+
+commit e89884da9f76b713372a79b772ba3cc2f3b03048
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Jan 23 21:31:11 2013 -0800
+
+    rados: obey op_size for 'get'
+    
+    Otherwise we try to read the whole object in one go, which doesn't bode
+    well for large objects (either non-optimal or simply broken).
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit 234becd3447a679a919af458440bc31c8bd6b84f)
+
+commit ee943c8bcf36f1e2218d8e25edfa38ec5fe4bec2
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Wed Feb 27 16:58:45 2013 -0800
+
+    FileJournal::wrap_read_bl: adjust pos before returning
+    
+    Otherwise, we may feed an offset past the end of the journal to
+    check_header in read_entry and incorrectly determine that the entry is
+    corrupt.
+    
+    Fixes: 4296
+    Backport: bobtail
+    Backport: argonaut
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit 5d54ab154ca790688a6a1a2ad5f869c17a23980a)
+
+commit 8c6f52215240f48b5e4d5bb99a5f2f451e7ce70a
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Jan 16 13:14:00 2013 -0800
+
+    osd: leave osd_lock locked in shutdown()
+    
+    No callers expect the lock to be dropped.
+    
+    Fixes: #3816
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 98a763123240803741ac9f67846b8f405f1b005b)
+
+commit a324d999804b4648f245ee36b3bd611b3d139d5d
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Feb 26 14:07:12 2013 -0800
+
+    msg: fix entity_addr_t::is_same_host() for IPv6
+    
+    We weren't checking the memcmp return value properly!  Aie...
+    
+    Backport: bobtail
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit c8dd2b67b39a8c70e48441ecd1a5cc3c6200ae97)
+
+commit 79d68ae8581141c3fb4cfafd76d5111ff009b762
+Author: Sage Weil <sage@inktank.com>
+Date:   Sun Feb 17 22:35:50 2013 -0800
+
+    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>
+    (cherry picked from commit 56c5a07708d52de1699585c9560cff8b4e993d0a)
+
+commit 79c4e7e91becc497843d96251776bdc176706aa0
+Author: Sage Weil <sage@inktank.com>
+Date:   Sun Feb 17 20:49:52 2013 -0800
+
+    osd: pull requeued requests off one at a time
+    
+    Pull items off the finished queue on at a time.  In certain cases, an
+    event may result in new items betting added to the finished queue that
+    will be put at the *front* instead of the back.  See latest incarnation
+    of #2947.
+    
+    Note that this is a significant changed in behavior in that we can
+    theoretically starve if an event keeps resulting in new events getting
+    generated.  Beware!
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+    (cherry picked from commit f1841e4189fce70ef5722d508289e516faa9af6a)
+
+commit 3a6ce5d0355beaa56199465e94666cae40bd8da1
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Jan 17 22:00:42 2013 -0800
+
+    mds: open mydir after replay
+    
+    In certain cases, we may replay the journal and not end up with the
+    dirfrag for mydir open.  This is fine--we just need to open it up and
+    fetch it below.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit e51299fbce6bdc3d6ec736e949ba8643afc965ec)
+
+commit 36ed407e0f939a9bca57c3ffc0ee5608d50ab7ed
+Author: Greg Farnum <greg@inktank.com>
+Date:   Thu Feb 21 09:21:01 2013 -0800
+
+    mds: use inode_t::layout for dir layout policy
+    
+    Remove the default_file_layout struct, which was just a ceph_file_layout,
+    and store it in the inode_t.  Rip out all the annoying code that put this
+    on the heap.
+    
+    To aid in this usage, add a clear_layout() function to inode_t.
+    
+    Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
+    Signed-off-by: Greg Farnum <greg@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+
+commit b4fd196cae5ab76aeb8f82f0581d0a6a2133a3ed
+Author: Sage Weil <sage@inktank.com>
+Date:   Sun Jan 20 21:53:37 2013 -0800
+
+    mds: parse ceph.*.layout vxattr key/value content
+    
+    Use qi to parse a strictly formatted set of key/value pairs.  Be picky
+    about whitespace.  Any subset of recognized keys is allowed.  Parse the
+    same set of keys as the ceph.*.layout.* vxattrs.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 5551aa5b3b5c2e9e7006476b9cd8cc181d2c9a04)
+
+commit 5f92adca26b509aed5655e85ad53174fa7b574b9
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Mon Feb 18 09:10:43 2013 -0800
+
+    rgw: fix multipart uploads listing
+    
+    Fixes: #4177
+    Backport: bobtail
+    Listing multipart uploads had a typo, and was requiring the
+    wrong resource (uploadId instead of uploads).
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit db99fb4417b87301a69cb37b00c35c838b77197e)
+
+commit a44df9343594099fecb3897df393249d3d1992e2
+Author: Yehuda Sadeh <yehuda@inktank.com>
+Date:   Fri Feb 15 10:22:54 2013 -0800
+
+    rgw: don't copy object when it's copied into itself
+    
+    Fixes: #4150
+    Backport: bobtail
+    
+    When object copied into itself, object will not be fully copied: tail
+    reference count stays the same, head part is rewritten.
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
+    Reviewed-by: Greg Farnum <greg@inktank.com>
+    (cherry picked from commit 34f885be536d0ac89c10fd29b1518751d2ffc547)
+
+commit 91d6be8353259ca30dc87062422e9ae334c3c344
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Tue Feb 19 10:49:33 2013 -0800
+
+    PG: remove weirdness log for last_complete < log.tail
+    
+    In the case of a divergent object prior to log.tail,
+    last_complete may end up before log.tail.
+    
+    Backport: bobtail
+    Fixes #4174
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit dbadb3e2921297882c5836c67ca32bb8ecdc75db)
+    
+    Conflicts:
+    
+       src/osd/PG.cc
+
+commit 7889c5412deaab1e7ba53d66814d0f25659229c1
+Author: James Page <james.page@ubuntu.com>
+Date:   Mon Feb 18 16:24:54 2013 +0000
+
+    Strip any trailing whitespace from rbd showmapped
+    
+    More recent versions of ceph append a bit of whitespace to the line
+    after the name of the /dev/rbdX device; this causes the monitor check
+    to fail as it can't find the device name due to the whitespace.
+    
+    This fix excludes any characters after the /dev/rbdN match.
+    (cherry picked from commit ad84ea07cac5096de38b51b8fc452c99f016b8d8)
+
+commit 42fba772c3c0e2396124a9d6ec39297dd9af4cc9
+Merge: 290a352 ad6655e
+Author: Sage Weil <sage@newdream.net>
+Date:   Sun Feb 17 21:52:55 2013 -0800
+
+    Merge pull request #64 from dalgaaf/wip-bobtail-memleaks
+    
+    cherry-pick some memleak fixes from master to bobtail
+
+commit ad6655e976916d3b62e0c91fd469eeb49fe7da3e
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Fri Feb 8 17:17:59 2013 +0100
+
+    rgw/rgw_rest.cc: fix 4K memory leak
+    
+    Fix 4K memory leak in case RGWClientIO::read() fails in
+    read_all_chunked_input().
+    
+    Error from cppcheck was:
+    Checking src/rgw/rgw_rest.cc...
+    [src/rgw/rgw_rest.cc:688]: (error) Memory leak: data
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 89df090e04ef9fc5aae29122df106b0347786fab)
+
+commit 3de692753c28ddbeb3c86b51466be16e94c9c458
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Fri Feb 8 17:14:19 2013 +0100
+
+    SyntheticClient.cc: fix some memory leaks in the error handling
+    
+    Fix some memory leaks in case of error handling due to failed
+    client->open() calls.
+    
+    Error from cppcheck was:
+    [src/client/SyntheticClient.cc:1980]: (error) Memory leak: buf
+    [src/client/SyntheticClient.cc:2040]: (error) Memory leak: buf
+    [src/client/SyntheticClient.cc:2090]: (error) Memory leak: buf
+    (cherry picked from commit f0ba80756d1c3c313014ad7be18191981fb545be)
+
+commit f19d228c6a49222659c769099aaa4e755b80331d
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Fri Feb 8 16:57:20 2013 +0100
+
+    rgw/rgw_xml.cc: fix realloc memory leak in error case
+    
+    Fix error from cppcheck:
+    
+    [src/rgw/rgw_xml.cc:212]: (error) Common realloc mistake: 'buf'
+      nulled but not freed upon failure
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit d48cc789ea075ba2745754035640ada4131b2119)
+
+commit b0c6be95b03d9f3dd2badcdcff359ae7bc9684f4
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Fri Feb 8 16:54:33 2013 +0100
+
+    os/FileStore.cc: fix realloc memory leak in error case
+    
+    Fix error from cppcheck:
+    
+    [src/os/FileStore.cc:512]: (error) Common realloc mistake: 'fiemap'
+      nulled but not freed upon failure
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit c92a0f552587a232f66620170660d6b2ab6fb3a5)
+
+commit f3e5cedbc11005701ac0a8e70909a6372cd2fe6f
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Fri Feb 8 16:49:36 2013 +0100
+
+    common/fiemap.cc: fix realloc memory leak
+    
+    Fix error from cppcheck:
+    
+    [src/common/fiemap.cc:73]: (error) Common realloc mistake: 'fiemap'
+      nulled but not freed upon failure
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit f26f1470e7af36fa1eb8dc59c8a7c62c3c3a22ba)
+
+commit 290a352c3f9e241deac562e980ac8c6a74033ba6
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 14 11:37:57 2013 -0800
+
+    osd/OSDCap: add unit test for parsing pools/objects with _ and -
+    
+    Hunting #4122, where a user saw
+    
+    2013-02-13 19:39:25.467916 7f766fdb4700 10 osd.0 10  session 0x2c8cc60 client.libvirt has caps osdcap[grant(object_prefix rbd^@children  class-read),grant(pool libvirt^@pool^@test rwx)] 'allow class-read object_prefix rbd_children, allow pool libvirt-pool-test rwx'
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 2ce28ef1d7f95e71e1043912dfa269ea3b0d1599)
+    (cherry picked from commit a6534bc8a0247418d5263b765772d5266f99229c)
+
+commit f47916353547c77a65c7b70e609a9096f09c6d28
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 14 15:39:43 2013 -0800
+
+    osd/OSDCap: tweak unquoted_word parsing in osd caps
+    
+    Newer versions of spirit (1.49.0-3.1ubuntu1.1 in quantal, in particular)
+    dislike the construct with alnum and replace the - and _ with '\0' in the
+    resulting string.
+    
+    Fixes: #4122
+    Backport: bobtail
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 6c504d96c1e4fbb67578fba0666ca453b939c218)
diff --git a/doc/changelog/v0.56.5.txt b/doc/changelog/v0.56.5.txt
new file mode 100644 (file)
index 0000000..0e9ce5e
--- /dev/null
@@ -0,0 +1,1972 @@
+commit df884bb7b59e5796c996ab806f5ec8b8322e292f
+Author: Gary Lowell <gary.lowell@inktank.com>
+Date:   Thu May 2 18:08:06 2013 -0700
+
+    v0.56.5
+
+commit b38cbabb2a38e4476de1135c33c25c673d62cd67
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Thu Apr 4 18:23:40 2013 +0200
+
+    ceph.spec.in: fix udev rules.d files handling
+    
+    Move 50-rbd.rules into the ceph base package since the related
+    ceph-rbdnamer binary is part of this package. Use correct install
+    pattern.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+
+commit d0678a062a1baf738ce96114114d99495be19478
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Apr 29 17:01:55 2013 -0700
+
+    debian: only start/stop upstart jobs if upstart is present
+    
+    This avoids errors on non-upstart distros (like wheezy).
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 030bf8aaa15837f898e453161eeaf1d52fc5779d)
+    
+    Conflicts:
+       debian/ceph-mds.postinst
+
+commit 209ce34a420cc5cdbe7219393f2f150ac28f612c
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 11 17:09:37 2013 -0700
+
+    debian: stop ceph-mds before uninstalling ceph-mds
+    
+    Fixes: #4384
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 9eb0d91b867ab980135d7c6ff6347d69d0a8a794)
+
+commit 0c91becfa6cc5f05c5b2eaa89299dbf1aa202344
+Author: Dan Mick <dan.mick@inktank.com>
+Date:   Thu Apr 25 15:53:51 2013 -0700
+
+    Makefile.am: Add -lpthread to fix build on newer ld in Raring Ringtail
+    
+    Signed-off-by: Dan Mick <dan.mick@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 98f532e8000af281fa03b24da9ad2fda81755270)
+    
+    Conflicts:
+       src/Makefile.am
+
+commit 15e6544f0892e8472f436149d15fc30257496c0b
+Merge: fdc0534 418cff5
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed May 1 12:57:43 2013 -0700
+
+    Merge remote-tracking branch 'gh/bobtail-deploy' into bobtail-next
+
+commit fdc05346177a60f064fe351ca81c6078cd065179
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Apr 25 11:13:33 2013 -0700
+
+    init-ceph: use remote config when starting daemons on remote nodes (-a)
+    
+    If you use -a to start a remote daemon, assume the remote config is present
+    instead of pushing the local config.  This makes more sense and simplifies
+    things.
+    
+    Note that this means that -a in concert with -c foo means that foo must
+    also be present on the remote node in the same path.  That, however, is a
+    use case that I don't particularly care about right now.  :)
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit cd7e52cc76878eed0f084f7b9a6cf7c792b716c6)
+
+commit 55c87e821b6acc1cd46056ca27c6e7f7030466e7
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Wed Apr 24 12:20:17 2013 -0700
+
+    PG: call check_recovery_sources in remove_down_peer_info
+    
+    If we transition out of peering due to affected
+    prior set, we won't trigger start_peering_interval
+    and check_recovery_sources won't get called.  This
+    will leave an entry in missing_loc_sources without
+    a matching missing set.  We always want to
+    check_recovery_sources with remove_down_peer_info.
+    
+    Fixes: 4805
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 81a6165c13c533e9c1c6684ab7beac09d52ca6b5)
+
+commit a28c2f55bfc768a502fbc8ec35265e7f1a53e044
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Apr 25 14:08:57 2013 -0700
+
+    PG: clear want_acting when we leave Primary
+    
+    This is somewhat annoying actually.  Intuitively we want to
+    clear_primary_state when we leave primary, but when we restart
+    peering due to a change in prior set status, we can't afford
+    to forget most of our peering state.  want_acting, on the
+    other hand, should never persist across peering attempts.
+    In fact, in the future, want_acting should be pulled into
+    the Primary state structure.
+    
+    Fixes: #3904
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: David Zafman <david.zafman@inktank.com>
+    (cherry picked from commit a5cade1fe7338602fb2bbfa867433d825f337c87)
+
+commit 849ed5982d4547dd651313919fb090944f568214
+Author: Greg Farnum <greg@inktank.com>
+Date:   Tue Apr 30 18:12:10 2013 -0700
+
+    mon: communicate the quorum_features properly when declaring victory.
+    
+    Fixes #4747.
+    
+    Signed-off-by: Greg Farnum <greg@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit fe68afe9d10bc5d49a05a8bafa644d57783447cf)
+
+commit ea9c76b8f457d44e63551d47b6dd30bd16a56468
+Author: Greg Farnum <greg@inktank.com>
+Date:   Tue Apr 30 11:01:54 2013 -0700
+
+    elector: trigger a mon reset whenever we bump the epoch
+    
+    We need to call reset during every election cycle; luckily we
+    can call it more than once. bump_epoch is (by definition!) only called
+    once per cycle, and it's called at the beginning, so we put it there.
+    
+    Fixes #4858.
+    
+    Signed-off-by: Greg Farnum <greg@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 6ae9bbb5d03cb5695a4ebb7a3c20f729de1bd67a)
+    
+    Conflicts:
+    
+       src/mon/Elector.cc
+
+commit 418cff585bf6fc292d260a464369d82f7cdb3b79
+Author: Alexandre Marangone <alexandre.marangone@inktank.com>
+Date:   Fri Apr 19 15:09:28 2013 -0700
+
+    Fix journal partition creation
+    
+    With OSD sharing data and journal, the previous code created the
+    journal partiton from the end of the device. A uint32_t is
+    used in sgdisk to get the last sector, with large HD, uint32_t
+    is too small.
+    The journal partition will be created backwards from the
+    a sector in the midlle of the disk leaving space before
+    and after it. The data partition will use whichever of
+    these spaces is greater. The remaining will not be used.
+    
+    This patch creates the journal partition from the start as a workaround.
+    
+    Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
+    (cherry picked from commit 56619ab91732bd2eacbef388311954f4e0230a30)
+
+commit 1a6b87ea48c3bcd3904d888a2ad1e5774aa2de8e
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Apr 26 15:37:21 2013 -0700
+
+    ceph.spec.in: put ceph-disk-* et al in correct sbindir
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+
+commit 86337936059d6b17c887e82f79167324eafa083c
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Apr 26 15:29:12 2013 -0700
+
+    debian: fix ceph.install
+    
+    This got out of sync somewhere in cherry-picking all of these patches.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+
+commit 0b42b1edb306a9763bcd02bd962bd284f6b7b3a3
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Thu Apr 4 15:54:31 2013 +0200
+
+    Makefile.am: install ceph-* python scripts to /usr/bin directly
+    
+    Install ceph-* scripts directly to $(prefix)$(sbindir) (which
+    normaly would be /usr/sbin) instead of moving it around after
+    installation in SPEC file or debian files.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 4d16f38f48e276497190c8bc03abc55c40e18eed)
+
+commit c71fb8d5b39667fc2c9f7e898ced53059d3f1eec
+Author: Gary Lowell <glowell@inktank.com>
+Date:   Tue Apr 2 12:11:10 2013 -0700
+
+    ceph-disk:  CalledProcessError has no output keyword on 2.6
+    
+    Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
+    (cherry picked from commit a793853850ee135de14b9237f7023cadcdb8575c)
+
+commit 1b86b1c7618b1ab93e25e1abf79bbe0a992c8526
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Apr 2 17:54:53 2013 +0200
+
+    ceph-disk: fix some (local) variable names
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit c4eb7e6ddd593cd45ab8343da01355be7382723e)
+
+commit ee452ebe6ff37087714c085dacd1ca2bcf66bd49
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Apr 2 17:36:37 2013 +0200
+
+    ceph-disk: fix naming of local variable in is_mounted()
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 3dd8b461219e64bb0f7a210dba5a9ab7c644f014)
+
+commit 0e47d312dcec2deb26a960e6097708d8742d85cb
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Apr 2 17:33:08 2013 +0200
+
+    ceph-disk: merge twice defined function is_mounted(dev)
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit eaf31bf9f90ba9709a57a6870dbafa21142dae2c)
+
+commit 7326ea6397160607d78914444f7f0598a6ba346f
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Apr 2 17:26:12 2013 +0200
+
+    ceph-disk: define exception type
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 4c6d6442a89adc5b56e99cb4d2ed572f2ad192c9)
+
+commit 14a348dc8ea9c012b6843825fd7beb5896a6d92e
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Apr 2 17:17:38 2013 +0200
+
+    ceph-disk: fix Redefining name 'uuid' from outer scope
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 058eb923c5b7dab611901fdd1724ce2a7c180827)
+
+commit 9419dca69292146ea1fd216a1ad08b2e07bdc1a0
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Apr 2 17:14:23 2013 +0200
+
+    ceph-disk: add missing space after comma
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 0080d1df7c7950e051840a543fc4bdabe6cc53e5)
+
+commit 7406981aa5515a3be8af0b9a0abef83a40c432b2
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 29 17:30:28 2013 -0700
+
+    ceph-disk list: say 'unknown cluster $UUID' when cluster is unknown
+    
+    This makes it clearer that an old osd is in fact old.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit e9b3f2e6e93426d631d4f8101fb431a523b0d88a)
+
+commit 0182973b66d449552d17248e27cd12c470137ea9
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 29 13:59:04 2013 -0700
+
+    ceph-disk: handle missing journal_uuid field gracefully
+    
+    Only lower if we know it's not None.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 562e1716bd4b5372716e502a5e4dd872d381bfb7)
+
+commit 24d729c591430349b033992f87141e596dcd6bff
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Mar 28 20:49:24 2013 -0700
+
+    ceph-disk: implement 'list'
+    
+    This is based on Sandon's initial patch, but much-modified.
+    
+    Mounts ceph data volumes temporarily to see what is inside.  Attempts to
+    associated journals with osds.
+    
+    Resolves: #3120
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Dan Mick <dan.mick@inktank.com>
+    (cherry picked from commit 6a65b9131c444041d16b880c6a7f332776063a78)
+
+commit bf3f8702c580c6b9647878837355688a2a4f954c
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 18:44:32 2013 -0700
+
+    ceph-disk: reimplement list_all_partitions
+    
+    Use /dev/disk/by-id to list disks and their partitions.  This is more
+    accurate and correct than the previous (as-yet unused) implementation.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit d3e49047ff405573aa41f45864cf315be23f5c50)
+
+commit 9da81e4e798b8e5593f3a7eda6dfa8586307121f
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 18:43:59 2013 -0700
+
+    ceph-disk: reimplement is_partition
+    
+    Previously we were assuming any device that ended in a digit was a
+    partition, but this is not at all correct (e.g., /dev/sr0, /dev/rbd1).
+    Instead, look in /dev/disk/by-id and see if there is a symlink that ends in
+    -partNN that links to our device.
+    
+    There is probably still a better way...
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 20d594a889d62110ad03b761d8703f79f8eea6ad)
+
+commit 0c8efc0664f068a1952fe54b8034d005cf3f9ce8
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 12:45:29 2013 -0700
+
+    ceph-disk: conditionally remove mount path
+    
+    umount removes it on success; only remove it here if it is still there.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 4362934a94c5a6f7521f06aa1255e111094e1d88)
+
+commit 153994cdcf9bc4a9719849d951bec5f4983340b5
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Mar 26 17:04:14 2013 -0700
+
+    ceph-disk: ignore udevadm settle return code
+    
+    If we time out, just continue and let the next step fail.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 2ae297ccb812c00204ec0c4dc614821c506062b9)
+
+commit d714049d530dc9611cf5f2fcb9b272c355dbe9f1
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Mon Mar 25 17:45:32 2013 +0100
+
+    ceph-disk: rename some local variabels in list_*partitions
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit b7d7e6894c550a7afa8dfb5bfa2bc54b5d331178)
+
+commit ecb34b81b843adaf9455503eb3ecc69ea94652a3
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Mon Mar 25 16:24:00 2013 +0100
+
+    ceph-disk: fix naming of a local variable in find_cluster_by_uuid
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 0b5fcfffe6d2f69bd4318cc93ef73195d948b9c5)
+
+commit 63eb85072f6a61552725bd04dfb261e5cd52a60a
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Mon Mar 25 16:18:17 2013 +0100
+
+    ceph-disk: rename some constants to upper case variable names
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 8a999ded088e688fd3f4a7c27127b7c06f0b2f66)
+
+commit d26a03422a37f16d609de12f8973f3c32ffedae0
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Mon Mar 25 16:15:29 2013 +0100
+
+    ceph-disk: add some more docstrings
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 86e55f5448c4b5b46b74d2d89b01d1e64b1ea826)
+
+commit bd8bb984806a1dbc3514c3a2a8980a03cfb2bc23
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Mon Mar 25 14:36:41 2013 +0100
+
+    ceph-disk: print subprocess.CalledProcessError on error
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 543327b1f2a9efe8083bb196433c4bcf83883269)
+
+commit 970348fc46a7e100731ffdc63d20f343dcb1b787
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Mon Mar 25 13:55:56 2013 +0100
+
+    ceph-disk: fix indention
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 2d26bcc07162a5176cdbc1748b829e3f39653697)
+
+commit 0113e5335e1552294bbf075cfff85c204b164e95
+Author: Gary Lowell <glowell@inktank.com>
+Date:   Tue Mar 26 11:31:16 2013 -0700
+
+    ceph-disk:  udevadm settle before partprobe
+    
+    After changing the partition table, allow the udev event to be
+    processed before calling partprobe.  This helps prevent partprobe
+    from getting a resource busy error on some platforms.
+    
+    Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
+    (cherry picked from commit 9eda8e5d5abf0743a2ad484806cfb2018243515f)
+
+commit 02d48351f73330917185d8980f8ad123b99138b5
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 22 10:09:55 2013 -0700
+
+    ceph-disk: re-add python 2.7 dependency comment
+    
+    FIXME!
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 6d63752c8fde91cdab306d1ca689690b269fe977)
+
+commit e92baf5081a43ff3290eb934612a11fbed946469
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 14:36:58 2013 +0100
+
+    ceph-disk: cast output of subprocess.Popen() to str()
+    
+    Cast output of subprocess.Popen() to str() to be able to use
+    str.split() and str.splitlines() without warnings from pylint.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 87691dc46edfba11c370592dbb533772190be4b2)
+
+commit 1ffc89af1954643426708987a09291463bd7525b
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 14:02:28 2013 +0100
+
+    ceph-disk: fix adjust_symlink() replace 'journal' with 'target'
+    
+    Replace 'journal' variable with 'target' since journal doesn't
+    exist in this function.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 3575feb7d2e5f4e35c5df193a1f8c9f08f88fcf4)
+
+commit 690ab6b3e284e9beed74b3e77612e804464e467d
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 14:01:02 2013 +0100
+
+    ceph-disk: fix adjust_symlink() replace 'canonical' with 'path'
+    
+    Replace 'canonical' variable with 'path' since canonical doesn't
+    exist in this function.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit a27cb85b21610b4a9f8eb24f8f6cd04902349728)
+
+commit 329f279cd108c837e434ee3aae6c8ad502ba802f
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 13:56:23 2013 +0100
+
+    ceph-disk: there is no os.path.lstat use os.lstat
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 6d3247b5c02c39a66666a5833106dbc23044e436)
+
+commit ffe024b8b5024cdac256bacb9df433b69385cc0a
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 13:30:21 2013 +0100
+
+    ceph-disk: remove unused variable key from prepare_journal_dev()
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 97b4f8d66bef2328fa53f9e508eb38f8b8d49632)
+
+commit 9464284f3ac9737345c595847e165db48adc0a70
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 13:27:27 2013 +0100
+
+    ceph-disk: fix except to catch OSError
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 9daf6cfce2d57509d896eae28bb97146a682a306)
+
+commit 01152115f7bf4a307296c9126174ce09bb0ce22d
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 13:15:36 2013 +0100
+
+    ceph-disk: add missing space after >> operator
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 0ada43f79d2b1f9f84367e558c6d1a3e90e5c9b2)
+
+commit b9f86d96f5dd6ca18eb39882caf69e76369b5e0b
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 12:33:09 2013 +0100
+
+    fix: Redefining name 'uuid' from outer scope (line 14)
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit d3c60dc8cad1db1d5df1c740bc805aaf9ba606ba)
+
+commit 6fa6cd85b55935739e16b8ba537f7848dbb0218f
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 12:17:45 2013 +0100
+
+    ceph-disk: remove unused variables from list_partitions()
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 6a8120d4b0c4cfa851d473532eb2366534f8653d)
+
+commit 0b4e85fe23e8aa24e8aef8548df2b508bda24752
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Wed Mar 20 12:10:22 2013 +0100
+
+    ceph-disk: fix /dev/dm-[0-9] handling list_all_partitions()
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 3af7a1ac5bf24bf832d7180002281d6b5853e85a)
+
+commit 3ec61f85f6a8a8af8a2b921f94e77a77be77a1d7
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Mar 19 22:07:36 2013 +0100
+
+    ceph-disk: rename local variable shadowing builtin
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 9bcf5b64f45ab6c4bdedf820ed111319b2dbd778)
+
+commit bd1036dd83fa2ee4807047fb9c2b414ccc9375eb
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Mar 19 22:05:23 2013 +0100
+
+    ceph-disk: remove twice defined identical function unmount
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 4adf088107586be7b356d1e963570cdab232809e)
+
+commit 8dd8cbac6f88fcb9d2c6838b9f961c70cccb9288
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Mar 19 22:02:49 2013 +0100
+
+    ceph-disk: remove twice defined function mount
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit ea26ea0d81a23aa76076ad5441c3b1aadfba3b44)
+
+commit 0da87db1c0e4b44b69c19b718d89e7a621979009
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Mar 19 21:58:22 2013 +0100
+
+    ceph-disk: remove double defined function get_conf
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit c57daa3c6e03e8974e133d3a2d9bc3d6f06f4faf)
+
+commit 9c46dfb2512d3b55345faed1bebb9204ba07d030
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Tue Mar 19 21:51:54 2013 +0100
+
+    ceph-disk: rename local variable shadowing builtin
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 57dde5c8b18ff4ccd53a30bb94119c0ffceb52b7)
+
+commit b807d8ba0a0c23c7dab6893bc5297e07c0fd902f
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 18 14:55:24 2013 -0700
+
+    ceph-disk: install and package
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit c2602d749023b24ac22d8cfce6e04889078f14d8)
+    
+    Conflicts:
+    
+       debian/ceph.install
+
+commit 8901e02db05837b12d5e1d0ec6f14f909cc03315
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 15 16:50:05 2013 -0700
+
+    ceph-disk: simplify command dispatch
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit f287c6f90af0dfdd41358846b069aa3c54b600b3)
+
+commit 3cbc0d0c92ad19d5022c94d9d1ac00aff4eb9b2d
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 15 16:40:32 2013 -0700
+
+    ceph-disk: consolidate exceptions
+    
+    Use a single exception type, and catch it at the top level.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit a019753bd3897ee0f5d9c3563c653c5457d5e67d)
+
+commit b4176bafa2b0721664332a1bb8b73da54151f685
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Mar 15 16:36:45 2013 -0700
+
+    ceph-disk: consolidate ceph-disk-* into a single binary
+    
+     ceph-disk prepare ...
+     ceph-disk activate ...
+     ceph-disk ...
+    
+    This let's us share code (we were already duplicating a bunch of stuff!)
+    and to add new commands easily.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 20e4ba5cebb7b4989d1745932f7a412c28504ee1)
+
+commit 455cb32543df8036a605dc7b6c194e58b10bc4ec
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 18 21:13:34 2013 -0700
+
+    ceph-disk-prepare: 'mkfs -t' instead of 'mkfs --type='
+    
+    Older mkfs (el6) doesn't like --type=.
+    
+    Fixes: #4495
+    Reported-by: Alexandre Maragone <alexandre.maragone@inktank.com>
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit d47759429a6e2fdd392265e90b67046302c97644)
+
+commit 19a2cf58504a3305ac9afe3d6642cf68e1b0f6c1
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Mar 14 21:05:07 2013 -0700
+
+    ceph-disk-activate: identify cluster .conf by fsid
+    
+    Determine what cluster the disk belongs to by checking the fsid defined
+    in /etc/ceph/*.conf.  Previously we hard-coded 'ceph'.
+    
+    Note that this has the nice side-effect that if we have a disk with a
+    bad/different fsid, we now fail to activate it.  Previously, we would
+    mount and start ceph-osd, but the daemon would fail to authenticate
+    because it was part of the wrong cluster.
+    
+    Fixes: #3253
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 80af5fb887f30792c342ac16da9ed95d7e89e491)
+
+commit 568485bea8ae9f0f36571de259c7254fa4227b15
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Mar 14 16:18:26 2013 -0700
+
+    ceph-disk-activate: abort if target position is already mounted
+    
+    If the target position is already a mount point, fail to move our mount
+    over to it.  This usually indicates that a different osd.N from a
+    different cluster instances is in that position.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 7370b5564606474f11b9ac5afb7cc60e0ac36ed1)
+
+commit a6ecf9288af248656bc712c1a4de910ff107a9a2
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Mar 14 12:05:52 2013 -0700
+
+    Revert "ceph-disk-activate: rely on default/configured keyring path"
+    
+    This reverts commit 936b8f20af1d390976097c427b6e92da4b39b218.
+    
+    This is necessary because we mount the osd in a temporary location.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit b6102c0945a0d68b7c5ff7f2254a1a994788ca0f)
+
+commit 7c1edc0c927a27c07b6f1611c2cf9c48f2dc95f6
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Mar 14 12:04:44 2013 -0700
+
+    Revert "ceph-disk-activate: don't override default or configured osd journal path"
+    
+    This reverts commit 813e9fe2b4291a1c1922ef78f031daa9b78fe53b.
+    
+    We run --mkfs with the osd disk mounted in a temporary location, so it is
+    necessary to explicitly pass in these paths.
+    
+    If we want to support journals in a different location, we need to make
+    ceph-disk-prepare update the journal symlink accordingly.. not control it via
+    the config option.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 3e628eee770508e750f64ea50179bbce52e7b8e0)
+
+commit 739b013cfa4b84d36750b80ce44579498e7ea4f4
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 11 21:15:11 2013 -0700
+
+    ceph-disk-activate: rely on default/configured keyring path
+    
+    No reason to override the default or configured value here.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 936b8f20af1d390976097c427b6e92da4b39b218)
+
+commit 897413f90c0e802c6824c0ee8d06bdae33979293
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 11 21:14:53 2013 -0700
+
+    ceph-disk-activate: don't override default or configured osd journal path
+    
+    There is no reason not to rely on the default or obey any configured
+    value here.
+    
+    Fixes: #4031
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 813e9fe2b4291a1c1922ef78f031daa9b78fe53b)
+
+commit 35eac085182e569b17c287c86e1415880909be22
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Mar 5 13:08:26 2013 -0800
+
+    ceph-disk-prepare: move in-use checks to the top, before zap
+    
+    Move the in-use checks to the very top, before we (say) zap!
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 32407c994f309cd788bf13fe9af27e17a422309a)
+
+commit 5ad4120a4825d6615778a005cff990afccf30691
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 4 20:57:52 2013 -0800
+
+    ceph-disk-prepare: verify device is not in use by device-mapper
+    
+    Be nice and tell the user which devices/mappings are consuming the device,
+    too.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit a6196de9e2f3ca9d67691f79d44e9a9f669443e9)
+
+commit e4a520029196cc76f1ec45695554ca6330bf14aa
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 4 16:38:57 2013 -0800
+
+    ceph-disk-prepare: verify device is not mounted before using
+    
+    Make sure the data and/or journal device(s) are not in use (mounted)
+    before using them.  Make room for additional "in-use" checks in the future.
+    
+    Closes: #3256
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 3bd0ac0ab011c4cdf0121f0d9732938d085fb8bf)
+
+commit d05b439142a24d28f35c6a09a8ab7c9eed503cd5
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 4 16:29:57 2013 -0800
+
+    ceph-disk-prepare: clean up stupid check for a digit
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit f03f62697f170d42b4b62c53d2860ff2f24a2d73)
+
+commit ea07b0e1047a4ac1b4dde88c795709190bd048be
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Mar 4 16:08:15 2013 -0800
+
+    ceph-disk-prepare: use os.path.realpath()
+    
+    My janky symlink resolution is broken in various ways.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 59505546e52a175435881b431bd349d532ae627e)
+
+commit 8f7e3e7dbbb9cab869366927c1687c38c012a1ef
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Thu Feb 28 14:16:26 2013 +0100
+
+    ceph.spec.in: add new Requires from ceph-disk-prepare
+    
+    Added new Requires from ceph-disk-prepare: cryptsetup, gptfdisk,
+    parted and util-linux.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 5c3f5c5b69a9edc99138d4f1ddb016689303dc28)
+    
+    Conflicts:
+    
+       ceph.spec.in
+
+commit 3441acf3749dbd99f1e00e5306e8180647085d2a
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 27 13:31:12 2013 -0800
+
+    debian: require cryptsetup-bin
+    
+    This is needed for ceph-disk-prepare's dmcrypt support.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit cfcaceac44d6b7b7c55e81d0bfb05f4893f3b1d0)
+    
+    Conflicts:
+    
+       debian/control
+
+commit abdac6fddd25bc71f59c1097246cfa32b33b0f5f
+Author: Alexandre Marangone <alexandre.marangone@inktank.com>
+Date:   Mon Apr 15 15:57:00 2013 -0700
+
+    Fix: use absolute path with udev
+    
+    Avoids the following: udevd[61613]: failed to execute '/lib/udev/bash'
+    'bash -c 'while [ ! -e /dev/mapper/....
+    
+    Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
+    (cherry picked from commit 785b25f53dc7f8035eeba2aae8a196e3b102d930)
+
+commit d1775daf68d9aa887116a357cbcaf7c44e091cce
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Feb 16 20:55:03 2013 -0800
+
+    ceph-disk-prepare: -f for mkfs.xfs only
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit fecc3c3abf1176f4c7938e161559ea2db59f1cff)
+
+commit 405e0ea1c692b1d62f948734e07c4f919b90d4e0
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Feb 16 16:49:50 2013 -0800
+
+    debian: fix start of ceph-all
+    
+    Tolerate failure, and do ceph-all, not ceph-osd-all.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit aff0bb6fdc8ca358f7ac1e941bb9cfecbefb4bb6)
+
+commit 632be442261cabd56da0dc897b8a47a8e5493dce
+Author: Alexandre Marangone <alexandre.marangone@inktank.com>
+Date:   Fri Feb 15 12:24:01 2013 -0800
+
+    ceph-disk-prepare: always force mkfs.xfs
+    
+    Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
+    (cherry picked from commit d950d83250db3a179c4b629fd32cd7bc8149997e)
+
+commit 28d1193836edee622763e308aad69c7bfe7a4971
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 13 18:22:45 2013 -0800
+
+    udev: trigger on dmcrypted osd partitions
+    
+    Automatically map encrypted journal partitions.
+    
+    For encrypted OSD partitions, map them, wait for the mapped device to
+    appear, and then ceph-disk-activate.
+    
+    This is much simpler than doing the work in ceph-disk-activate.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit e090a92a20f4161f473d16bc966f7d6aacac75ee)
+
+commit 5c5021b43ab70a08d791020262f76879dc77effb
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Feb 12 21:35:56 2013 -0800
+
+    ceph-disk-prepare: add initial support for dm-crypt
+    
+    Keep keys in /etc/ceph/dmcrypt-keys.
+    
+    Identify partition instances by the partition UUID.  Identify encrypted
+    partitions by a parallel set of type UUIDs.
+    
+    Signed-off-by: Alexandre Marangone <alexandre.maragone@inktank.com>
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit c6ac0ddf91915ba2aeae46d21367f017e18e82cd)
+
+commit d7084037d7a2395acfe8181f94963c1337c0f95b
+Author: Alexandre Marangone <alexandre.marangone@inktank.com>
+Date:   Fri Feb 15 12:22:33 2013 -0800
+
+    ceph-disk-activate: pull mount options from ceph.conf
+    
+    Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
+    (cherry picked from commit e7040f55f01db3de7d5cebfc79de50c8b6ad5d45)
+
+commit 34fba357ca8b662c7b943d426ed37875c173003f
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 14 17:05:32 2013 -0800
+
+    ceph-disk-activate: use full paths for everything
+    
+    We are run from udev, which doesn't get a decent PATH.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit b1c0fccba42dd184a2891ee873c0d6d8f8c79d14)
+
+commit caad18745cd8553a012d9e7f92e59d5b4450dcf2
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 14 17:04:55 2013 -0800
+
+    ceph-disk-prepare: do partprobe after setting final partition type
+    
+    This is necessary to kick udev into processing the updated partition and
+    running its rules.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 95835de9f80712eb26652ac6b66ba9c5eeb093d6)
+
+commit e1624e4626b4e67909f3bb83920c99ad323ed083
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 13 21:47:30 2013 -0800
+
+    debian: start/stop ceph-all event on install/uninstall
+    
+    This helps us avoid the confusing situation with upstart where an individual
+    daemon job is running (like ceph-osd id=2) but the container jobs ceph-osd-all
+    and ceph-all are not.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit b7b9af5c0d531dcee7ce9b10043a29b0a1b31f47)
+
+commit 656305f65eb33d68b95f4d29f37b031cf6cf889a
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 13 21:37:08 2013 -0800
+
+    ceph-disk-activate: catch daemon start errors
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 690ae05309db118fb3fe390a48df33355fd068a0)
+
+commit 8b771bf929c4a9ab3fd4eb6f40b9222a463fd1a4
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 13 17:30:19 2013 -0800
+
+    udev: trigger ceph-disk-activate directly from udev
+    
+    There is no need to depend on upstart for this.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 5bd85ee5aa31bfd1f4f0e434f08c2a19414358ef)
+    
+    Conflicts:
+    
+       ceph.spec.in
+
+commit ffb0613efaa9cf919992640322785eedf95ca25f
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 13 16:02:10 2013 -0800
+
+    ceph-disk-activate: auto detect init system
+    
+    Look for an option 'init' in ceph.conf.  Otherwise, check if we're ubuntu.
+    If so, use upstart.  Otherwise, use sysvinit.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit d1904b2a848af3c02d2065ac2a42abe0e2699d0f)
+
+commit 74b562703c422890c67b2a88d7b18242f64949dc
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Feb 13 15:49:42 2013 -0800
+
+    ceph-disk-activate: specify full path for blkid, initctl, service
+    
+    /sbin apparently isn't in the path when udev runs us.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit f06b45e66315310abb0720e021da377186455048)
+
+commit 9ea32e5f066bee75923212d8009fb37a365ef32e
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 19:18:23 2013 -0800
+
+    upstart: ceph-hotplug -> ceph-osd-activate
+    
+    This is a more meaningful name.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit e011ad128e7f302cb6955d9a7171ac0ec8890ddf)
+
+commit 494533a55010a59a52f6dcbe64f76e677a7dfe8e
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 19:14:22 2013 -0800
+
+    upstart/ceph-hotplug: tell activate to start via upstart
+    
+    This will mark the OSD data dir as upstart-managed.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 792e45c63dd7a9622fddd6e15ee4c075f995ea56)
+
+commit 5e0892fd8cbc2571d94cffc0b64daaa4ec6c38f8
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 19:08:22 2013 -0800
+
+    ceph-disk-prepare: refactor to support DIR, DISK, or PARTITION for data or journal
+    
+    Lots of code reorganization collapsed into a single commit here.
+    
+    - detect whether the user gave us a directory, disk, or partition, and Do The
+    Right Thing
+    - allow them to force that the input was of type X, for the careful/paranoid.
+    - make --zap-disk an option -- no longer the default
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit b2ff6e8c9d96dee2c063b126de7030a5c2ae0d02)
+
+commit aa428017e4aad9872a54cd87036ef2bb528aac7b
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 20:33:16 2013 -0800
+
+    ceph-disk-activate: detect whether PATH is mount or dir
+    
+    remove in-the-way symlinks in /var/lib/ceph/osd
+    
+    This is simpler.  Just detect what the path is and Do The Right Thing.
+    
+    Closes #3341 (which wanted to make --mount the default)
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 191d5f7535f8d96d493e1b35b43a421c67c168ea)
+
+commit e6d5aa053dbaaf07c94e35406c23f4ca009fe2da
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 20:32:47 2013 -0800
+
+    ceph-disk-activate: add --mark-init INITSYSTEM option
+    
+    Do not assume we will manage via upstart; let that be passed down via the
+    command line.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit fd4a921085a861e4aa428376219bb39055731f2b)
+
+commit fa23919eae363291b4807afe3fadd34f94e9ddcb
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 14:44:26 2013 -0800
+
+    ceph-disk-activate: factor mounting out of activate
+    
+    The activate stuff is generic for any OSD, regardless of whether we want
+    to mount it or not.  Pull that part out.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 07655288281c9c6f691f87352dc26b7c11ae07e8)
+
+commit 181ebdee0addfe3d13c13342def94ecf9415d6d5
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Feb 12 18:17:55 2013 -0800
+
+    debian: put ceph-mds upstart conf in ceph-mds package
+    
+    Fixes: #3157
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 23ad3a46a0099e263f43e0f0c1df1d21cfe58b3f)
+
+commit 919b0aedf7286e85e6ddc23f99f80f29e1d35db6
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Feb 12 17:02:52 2013 -0800
+
+    debian: include /var/lib/ceph/bootstrap-mds in package
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit e80675a0f333c04452d4822fd0eb3c6e92eda3df)
+
+commit f97f49b1e7ca8555c945b93fbc8241f5fa620dd8
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Feb 12 16:26:14 2013 -0800
+
+    ceph-create-keys: create mds bootstrap key
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 809143f16c70483ba5bb429dea812d31b67f2b49)
+
+commit f43c339d67b78e6afc3737d26cea4bc05dcea900
+Author: Sage Weil <sage@inktank.com>
+Date:   Sat Jan 26 14:45:43 2013 -0800
+
+    upstart/ceph-hotplug: drop -- in ceph-disk-activate args
+    
+    We would like to transition to
+    
+     ceph-disk-activate --mount DEV
+    
+    and away from a generic multi-definition PATH argument.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 4698b6a1035dee8509ce2d4dab7b34a16b78f7cd)
+
+commit 39df4c81f2166b7e9ac89c591b268b60de4042e6
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Jan 25 22:53:23 2013 -0800
+
+    init-ceph: iterate/locate local sysvinit-tagged directories
+    
+    Search /var/lib/ceph/$type/ceph-$id and start/stop those daemons if
+    present and tagged with the sysvinit file.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit c8f528a4070dd3aa0b25c435c6234032aee39b21)
+
+commit 05efb7ab5b289472a1af05d6aa100a7385be304e
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Jan 25 22:52:03 2013 -0800
+
+    init-ceph: consider sysvinit-tagged dirs as local
+    
+    If there is a 'sysvinit' file in the daemon directory in the default
+    location (/var/lib/ceph/$type/ceph-$id), consider it sysvinit-managed.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit b8aa4769a62e0d88174678cbefd89d9ee2baceea)
+
+commit 8c4c53abf84d30ff4a605225a22575f56d946971
+Author: Sage Weil <sage@inktank.com>
+Date:   Mon Feb 11 17:39:03 2013 -0800
+
+    ceph-disk-prepare: align mkfs, mount config options with mkcephfs
+    
+    'osd mkfs ...', not 'osd fs mkfs ...'.  Sigh.  Support both.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit af2372ca4a702da70275edd1b1357fcff51e6ae2)
+
+commit a8e7e9df61a7229d9e2b4b4dedc68b5c1bf15c38
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Apr 23 10:00:38 2013 -0700
+
+    init-ceph: fix (and simplify) pushing ceph.conf to remote unique name
+    
+    The old code would only do the push once per remote node (due to the
+    list in $pushed_to) but would reset $unique on each attempt.  This would
+    break if a remote host was processed twice.
+    
+    Fix by just skipping the $pushed_to optimization entirely.
+    
+    Fixes: #4794
+    Reported-by: Andreas Friedrich <andreas.friedrich@ts.fujitsu.com>
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit ccbc4dbc6edf09626459ca52a53a72682f541e86)
+
+commit 9374baccb8a71e1fe5ea2e614feac93e865dd027
+Merge: b6b4ebe aa37726
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Tue Apr 23 12:04:45 2013 -0700
+
+    Merge pull request #238 from ceph/wip-bobtail-rbd-backports-req-order
+    
+    Reviewed-by: Sage Weil <sage.weil@inktank.com>
+
+commit aa37726b8d43d08b495d55dc2aef93854e9539c5
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Tue Apr 23 09:18:30 2013 -0700
+
+    rbd: only set STRIPINGV2 feature when needed
+    
+    Only set the STRIPINGV2 feature if the striping parameters are non-default.
+    Specifically, fix the case where the passed-in size and count are == 0.
+    
+    Fixes: #4710
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 5926ffa576e9477324ca00eaec731a224195e7db)
+    
+    Conflicts:
+    
+       src/rbd.cc
+
+commit 0e2266dba912cde2c4a86ba7055c8bec3a5bc1a5
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Apr 10 14:16:56 2013 -0700
+
+    LibrbdWriteback:  complete writes strictly in order
+    
+    RADOS returns writes to the same object in the same order. The
+    ObjectCacher relies on this assumption to make sure previous writes
+    are complete and maintain consistency. Reads, however, may be
+    reordered with respect to each other. When writing to an rbd clone,
+    reads to the parent must be performed when the object does not exist
+    in the child yet. These reads may be reordered, resulting in the
+    original writes being reordered. This breaks the assmuptions of the
+    ObjectCacher, causing an assert to fail.
+    
+    To fix this, keep a per-object queue of outstanding writes to an
+    object in the LibrbdWriteback handler, and finish them in the order in
+    which they were sent.
+    
+    Fixes: #4531
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 06d05e5ed7e09fa873cc05021d16f21317a1f8ef)
+
+commit 7a11c2505a8b74babee90cca945c2a068a656ec1
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Apr 10 12:22:02 2013 -0700
+
+    LibrbdWriteback: removed unused and undefined method
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 909dfb7d183f54f7583a70c05550bec07856d4e4)
+
+commit 884438febaf12dc380d4a1a3c3c8d3cbefd32399
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Apr 10 12:06:36 2013 -0700
+
+    LibrbdWriteback: use a tid_t for tids
+    
+    An int could be much smaller, leading to overflow and bad behavior.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 9d19961539b2d50d0c9edee1e3d5ac6912a37f24)
+
+commit 124f81cc5fa5a3ac9e7777ad49dd42d864fd7f68
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Apr 10 12:03:04 2013 -0700
+
+    WritebackHandler: make read return nothing
+    
+    The tid returned by reads is ignored, and would make tracking writes
+    internally more difficult by using the same id-space as them. Make read
+    void and update all implementations.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 870f9cd421ca7b0094f9f89e13b1898a8302c494)
+
+commit 13ba07a0f3af479861c0e83e3e6441fef1bc8a99
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Mon Apr 1 14:51:46 2013 -0700
+
+    ObjectCacher: deduplicate final part of flush_set()
+    
+    Both versions of flush_set() did the same thing. Move it into a
+    helper called from both.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit f5b81d8d167d1aa7f82a5776bbb1f319063ab809)
+
+commit 7bc8df1f3e3b60b59672a082eba374729a6866b8
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Apr 10 11:35:46 2013 -0700
+
+    test_stress_watch: remove bogus asserts
+    
+    There's no reason to check the duration of a watch. The notify will
+    timeout after 30s on the OSD, but there's no guarantee the client will
+    see that in any bounded time. This test is really meant as a stress
+    test of the OSDs anyway, not of the clients, so just remove asserts
+    about operation duration.
+    
+    Fixes: #4591
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    Reviewed-by: Sam Just <sam.just@inktank.com>
+    (cherry picked from commit 4b656730ffff21132f358c2b9a63504dfbf0998d)
+
+commit 4a1c27c0e6e2e70be2b58e01872e321352c8e484
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Mon Apr 1 11:09:52 2013 -0700
+
+    librados: don't use lockdep for AioCompletionImpl
+    
+    This is a quick workaround for the next branch. A more complete fix
+    will be done for the master branch. This does not affect correctness,
+    just what qa runs with lockdep enabled do.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    Reviewed-by: Sage Weil <sage.weil@inktank.com>
+    (cherry picked from commit 267ce0d90b8f3afaaddfdc0556c9bafbf4628426)
+
+commit d36c5b5bd30a9d7e60403a09cedaea28bdc29e99
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 29 12:46:27 2013 -0700
+
+    librados: move snapc creation to caller for aio_operate
+    
+    The common case already has a snapshot context, so avoid duplicating
+    it (copying a potentially large vector) in IoCtxImpl::aio_operate().
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 4c4d5591bdb048cd9ffa25b529c6127356e7f9a7)
+
+commit 31a45e8e23ebf9815ce5a4e0c89ddbf384702aad
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Mar 21 16:04:10 2013 -0700
+
+    librbd: add an async flush
+    
+    At this point it's a simple wrapper around the ObjectCacher or
+    librados.
+    
+    This is needed for QEMU so that its main thread can continue while a
+    flush is occurring. Since this will be backported, don't update the
+    librbd version yet, just add a #define that QEMU and others can use to
+    detect the presence of aio_flush().
+    
+    Refs: #3737
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 302b93c478b3f4bc2c82bfb08329e3c98389dd97)
+
+commit f2e490cb5b1f322e637d787e788733ac4b2496f4
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 27 15:42:10 2013 -0700
+
+    librbd: use the same IoCtx for each request
+    
+    Before we were duplicating the IoCtx for each new request since they
+    could have a different snapshot context or read from a different
+    snapshot id. Since librados now supports setting these explicitly
+    for a given request, do that instead.
+    
+    Since librados tracks outstanding requests on a per-IoCtx basis, this
+    also fixes a bug that causes flush() without caching to ignore
+    all the outstanding requests, since they were to separate,
+    duplicate IoCtxs.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 860493e7ff0d87d02069b243fc1c8326ce0721f9)
+
+commit cbb37fb5470f22949a4dbb747f428943cce4aca7
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 27 15:37:27 2013 -0700
+
+    librbd: add an is_complete() method to AioCompletions
+    
+    Mainly this is useful for testing, like flushing and checking that
+    all pending writes are complete after the flush finishes.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 2ae32068dee22a0ca0698e230ead98f2eeeff3e6)
+
+commit f9bcffa2482220202e68d6bac70216d44ee5046b
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 27 15:32:29 2013 -0700
+
+    librados: add versions of a couple functions taking explicit snap args
+    
+    Usually the snapid to read from or the snapcontext to send with a write
+    are determined implicitly by the IoCtx the operations are done on.
+    
+    This makes it difficult to have multiple ops in flight to the same
+    IoCtx using different snapcontexts or reading from different snapshots,
+    particularly when more than one operation may be needed past the initial
+    scheduling.
+    
+    Add versions of aio_read, aio_sparse_read, and aio_operate
+    that don't depend on the snap id or snapcontext stored in the IoCtx,
+    but get them from the caller. Specifying this information for each
+    operation can be a more useful interface in general, but for now just
+    add it for the methods used by librbd.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit f06debef6c293750539501ec4e6103e5ae078392)
+
+commit fb95b800a4cc431a8bd98692fffbfc150f6f8d67
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 27 14:48:31 2013 -0700
+
+    librados: add async flush interface
+    
+    Sometimes you don't want flush to block, and can't modify
+    already scheduled aio_writes. This will be useful for a
+    librbd async flush interface.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 7cc0940f89070dadab5b9102b1e78362f762f402)
+    
+    Conflicts:
+    
+       src/include/rados/librados.h
+       src/include/rados/librados.hpp
+
+commit 3a61d17b6729b73d0bf2df106f54dafb603af646
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Mar 28 10:34:37 2013 -0700
+
+    ObjectCacher: remove unneeded var from flush_set()
+    
+    The gather will only have subs if there is something to flush. Remove
+    the safe variable, which indicates the same thing, and convert the
+    conditionals that used it to an else branch. Movinig gather.activate()
+    inside the has_subs() check has no effect since activate() does
+    nothing when there are no subs.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 553aaac8a19e2359acf6d9d2e1bb4ef0bdba7801)
+
+commit ee7bf281005cce671e467ca9b9eff0ba7eb9899e
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 22 12:17:43 2013 -0700
+
+    ObjectCacher: remove NULL checks in flush_set()
+    
+    Callers will always pass a callback, so assert this and remove the
+    checks for it being NULL.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 41568b904de6d155e5ee87c68e9c31cbb69508e5)
+
+commit d86f9b1dd370563170ab875c6a7de511f05acbf7
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 22 12:13:36 2013 -0700
+
+    ObjectCacher: always complete flush_set() callback
+    
+    This removes the last remnants of
+    b5e9995f59d363ba00d9cac413d9b754ee44e370. If there's nothing to flush,
+    immediately call the callback instead of deleting it. Callers were
+    assuming they were responsible for completing the callback whenever
+    flush_set() returned true, and always called complete(0) in this
+    case. Simplify the interface and just do this in flush_set(), so that
+    it always calls the callback.
+    
+    Since C_GatherBuilder deletes its finisher if there are no subs,
+    only set its finisher when subs are present. This way we can still
+    call ->complete() for the callback.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 92db06c05dc2cad8ed31648cb08866781aee2855)
+    
+    Conflicts:
+    
+       src/client/Client.cc
+
+commit 00dfb3f06fb6c2581a3f71126adcde0126e5e207
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Tue Jan 29 14:22:15 2013 -0800
+
+    ObjectCacher: fix flush_set when no flushing is needed
+    
+    C_GatherBuilder takes ownership of the Context we pass it. Deleting it
+    in flush_set after constructing the C_GatherBuilder results in a
+    double delete.
+    
+    Fixes: #3946
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    Reviewed-by: Sam Lang <sam.lang@inktank.com>
+    (cherry picked from commit 3bc21143552b35698c9916c67494336de8964d2a)
+
+commit 0f2e5d36e4dcd073174715c310fa22a835ca1259
+Author: Sam Lang <sam.lang@inktank.com>
+Date:   Fri Jan 18 14:59:12 2013 -0600
+
+    objectcacher: Remove commit_set, use flush_set
+    
+    commit_set() and flush_set() are identical in functionality,
+    so use flush_set everywhere and remove commit_set from
+    the code.
+    
+    Also fixes a bug in flush_set where the finisher context was
+    getting freed twice if no objects needed to be flushed.
+    
+    Signed-off-by: Sam Lang <sam.lang@inktank.com>
+    (cherry picked from commit 72147fd3a1da8ecbcb31ddf6b66a158d71933909)
+
+commit 3b0c565dceb41dcaf53965321ef420641bcb699b
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 13 09:42:43 2013 -0700
+
+    librbd: make aio_writes to the cache always non-blocking by default
+    
+    When the ObjectCacher's writex blocks, it affects the thread requesting
+    the aio, which can cause starvation for other I/O when used by QEMU.
+    
+    Preserve the old behavior via a config option in case this has any
+    bad side-effects, like too much memory usage under heavy write loads.
+    
+    Fixes: #4091
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 03ac01fa6a94fa7a66ede057e9267e0a562c3cdb)
+
+commit e237dfc742bba76664861a8868c502946fe53548
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 13 09:37:21 2013 -0700
+
+    ObjectCacher: optionally make writex always non-blocking
+    
+    Add a callback argument to writex, and a finisher to run the
+    callbacks. Move the check for dirty+tx > max_dirty into a helper that
+    can be called from a wrapper around the callbacks from writex, or from
+    the current place in _wait_for_write().
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit c21250406eced8e5c467f492a2148c57978634f4)
+
+commit 7bc1596b90d2d5853659cb3ffbe9653b633345f4
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 27 17:30:42 2013 -0700
+
+    librbd: flush cache when set_snap() is called
+    
+    If there are writes pending, they should be sent while the image
+    is still writeable. If the image becomes read-only, flushing the
+    cache will just mark everything dirty again due to -EROFS.
+    
+    Fixes: #4525
+    Backport: bobtail
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 613b7085bb48cde1e464b7a97c00b8751e0e917f)
+
+commit 9facdcac7bb8ab92f1ab486eaabee681e6b6519d
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 15 17:28:13 2013 -0700
+
+    librbd: optionally wait for a flush before enabling writeback
+    
+    Older guests may not send flushes properly (i.e. never), so if this is
+    enabled, rbd_cache=true is safe for them transparently.
+    
+    Disable by default, since it will unnecessarily slow down newer guest
+    boot, and prevent writeback caching for things that don't need to send
+    flushes, like the command line tool.
+    
+    Refs: #3817
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 1597b3e3a1d776b56e05c57d7c3de396f4f2b5b2)
+
+commit 1c44b66fb371a5864860c067bb5f59374f43005d
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 8 18:57:24 2013 -0800
+
+    librbd: invalidate cache when flattening
+    
+    The cache stores which objects don't exist. Flatten bypasses the cache
+    when doing its copyups, so when it is done the -ENOENT from the cache
+    is treated as zeroes instead of 'need to read from parent'.
+    
+    Clients that have the image open need to forgot about the cached
+    non-existent objects as well. Do this during ictx_refresh, while the
+    parent_lock is held exclusively so no new reads from the parent can
+    happen until the updated parent metadata is visible, so no new reads
+    from the parent will occur.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 46e8fc00b2dc8eb17d8777b6ef5ad1cfcc389cea)
+
+commit d9ca1b00a4dacb4715a69a276a644d645d0d5bc1
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 8 17:53:31 2013 -0800
+
+    ObjectCacher: add a method to clear -ENOENT caching
+    
+    Clear the exists and complete flags for any objects that have exists
+    set to false, and force any in-flight reads to retry if they get
+    -ENOENT instead of generating zeros.
+    
+    This is useful for getting the cache into a consistent state for rbd
+    after an image has been flattened, since many objects which previously
+    did not exist and went up to the parent to retrieve data may now exist
+    in the child.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit f2a23dc0b092c5ac081893e8f28c6d4bcabd0c2e)
+
+commit 1e51be05b7909a676ae499ca84e4cce94bb50da4
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Fri Mar 8 17:49:27 2013 -0800
+
+    ObjectCacher: keep track of outstanding reads on an object
+    
+    Reads always use C_ReadFinish as a callback (and they are the only
+    user of this callback). Keep an xlist of these for each object, so
+    they can remove themselves as they finish. To prevent racing requests
+    and with discard removing objects from the cache, clear the xlist in
+    the object destructor, so if the Object is still valid the set_item
+    will still be on the list.
+    
+    Make the ObjectCacher constructor take an Object* instead of the pool
+    and object id, which are derived from the Object* anyway.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit f6f876fe51e40570596c25ac84ba3689f72776c2)
+
+commit f2bcf241257500f5784b216b7a377ddec4669531
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Mon Feb 25 16:09:26 2013 -0800
+
+    test_rbd: move flatten tests back into TestClone
+    
+    They need the same setup, and it's easy enough to run specific
+    subtests. Making them a separate subclass accidentally duplicated
+    tests from TestClone.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 9c693d7e8312026f6d8d9586381b026ada35d808)
+
+commit cd989681823a2b8521c789f5d4fea5525ac53911
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Tue Feb 26 13:20:08 2013 -0800
+
+    librbd: fix rollback size
+    
+    The duplicate calls to get_image_size() and get_snap_size() replaced
+    by 5806226cf0743bb44eaf7bc815897c6846d43233 uncovered this. The first
+    call was using the currently set snap_id instead of the snapshot being
+    rolled back to.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit d6c126e2131fefab6df676f2b9d0addf78f7a488)
+
+commit 796066b7a8324b12a660d9b80b927e643db7529e
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Mon Feb 25 12:05:16 2013 -0800
+
+    Merge branch 'wip-4249' into wip-4249-master
+    
+    Make snap_rollback() only take a read lock on snap_lock, since
+    it does not modify snapshot-related fields.
+    Conflicts:
+       src/librbd/internal.cc
+    (cherry picked from commit db5fc2270f91aae220fc3c97b0c62e92e263527b)
+
+commit 34e9030e50fe15a320cbfbc9854c86deb3a9c57c
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Feb 21 11:26:45 2013 -0800
+
+    librbd: make sure racing flattens don't crash
+    
+    The only way for a parent to disappear is a racing flatten completing,
+    or possibly in the future the image being forcibly removed. In either
+    case, continuing to flatten makes no sense, so stop early.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit a1ae8562877d1b902918e866a1699214090c40bd)
+
+commit 6e6636d50840e97022c8e4a1072f42fee15050a9
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Feb 21 11:17:18 2013 -0800
+
+    librbd: use rwlocks instead of mutexes for several fields
+    
+    Image metadata like snapshots, size, and parent is frequently read,
+    but rarely updated. During flatten, we were depending on the parent
+    lock to prevent the parent ImageCtx from disappearing out from under
+    us while we read from it. The copy-up path also needed the parent lock
+    to be able to read from the parent image, which lead to a deadlock.
+    
+    Convert parent_lock, snap_lock, and md_lock to RWLocks, and change
+    their use to read instead of exclusive locks where appropriate. The
+    main place exclusive locks are needed is in ictx_refresh, so this is
+    pretty simple. This fixes the deadlock, since parent_lock is only
+    needed for read access in both flatten and the copy-up operation.
+    
+    cache_lock and refresh_lock are only really used for exclusive access,
+    so leave them as regular mutexes.
+    
+    One downside to this is that there's no way to assert is_locked()
+    for RWLocks, so we'll have to be very careful about changing code
+    in the future.
+    
+    Fixes: #3665
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 995ff0e3eaa560b242da8c019a2e11e735e854f7)
+
+commit 9b292199ef63822462c67cb6cf1cca6a53cf9fd7
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Feb 21 11:15:41 2013 -0800
+
+    common: add lockers for RWLocks
+    
+    This makes them easier to use, especially instead of existing mutexes.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit e0f8e5a80d6d22bd4dee79a4996ea7265d11b0c1)
+
+commit d8ac6cbf883fce0f39d661a879ff2462479d5494
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Feb 21 23:22:59 2013 -0800
+
+    objecter: initialize linger op snapid
+    
+    Since they are write ops now, it must be CEPH_NOSNAP or the OSD
+    returns EINVAL.
+    
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 15bb9ba9fbb4185708399ed6deee070d888ef6d2)
+
+commit 9ea4dac1db46c20cd83c5af5d29d9ce7a5768380
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 21 15:44:19 2013 -0800
+
+    objecter: separate out linger_read() and linger_mutate()
+    
+    A watch is a mutation, while a notify is a read.  The mutations need to
+    pass in a proper snap context to be fully correct.
+    
+    Also, make the WRITE flag implicit so the caller doesn't need to pass it
+    in.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 6c08c7c1c6d354d090eb16df279d4b63ca7a355a)
+
+commit d9636faabfdb2c0a876f0afa092a2ab925cf8983
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 21 15:31:08 2013 -0800
+
+    osd: make watch OSDOp print sanely
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit de4fa95f03b99a55b5713911c364d7e2a4588679)
+
+commit 959bfe9097a2cfa48e2ab21f11bd32c1349807aa
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 21 13:28:47 2013 -0800
+
+    osdc/Objecter: unwatch is a mutation, not a read
+    
+    This was causing librados to unblock after the ACK on unwatch, which meant
+    that librbd users raced and tried to delete the image before the unwatch
+    change was committed..and got EBUSY.  See #3958.
+    
+    The watch operation has a similar problem.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit fea77682a6cf9c7571573bc9791c03373d1d976d)
+    
+    Conflicts:
+    
+       src/librados/IoCtxImpl.cc
+
+commit b6b4ebed559db8bf74da4f482201948b5abc9225
+Author: Sage Weil <sage@inktank.com>
+Date:   Thu Feb 21 11:15:58 2013 -0800
+
+    osd: an interval can't go readwrite if its acting is empty
+    
+    Let's not forget that min_size can be zero.
+    
+    Fixes: #4159
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 4277265d99647c9fe950ba627e5d86234cfd70a9)
+
+commit 055d746c3bca0d7067b71ed1ff6d1c1cce42b5ed
+Author: Sage Weil <sage@inktank.com>
+Date:   Tue Feb 19 08:29:53 2013 -0800
+
+    mon: restrict pool size to 1..10
+    
+    See: #4159
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 30b8d653751acb4bc4be5ca611f154e19afe910a)
+
+commit c073bd25610ba556f3b30e6c583d1d74a10f09e2
+Author: Sage Weil <sage@inktank.com>
+Date:   Fri Apr 19 13:05:43 2013 -0700
+
+    init-ceph: do not stop start on first failure
+    
+    When starting we often loop over many daemon instances.  Currently we stop
+    on the first error and do not try to start other daemons.
+    
+    Instead, try them all, but return a failure if anything did not start.
+    
+    Fixes: #2545
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
+    (cherry picked from commit d395aa521e8a4b295ed2b08dd7cfb7d9f995fcf7)
+    
+    Conflicts:
+    
+       src/init-ceph.in
+
+commit daa6ed2bfe790f83f986f51d0917d6268d3e9d78
+Merge: 1d0bf61 9fe57e2
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Apr 11 13:00:27 2013 -0700
+
+    Merge pull request #210 from dalgaaf/wip-da-bobtail-pybind
+    
+    Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
+
+commit 9fe57e2bea89243a0080e667f90b7d4fb15ed883
+Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+Date:   Fri Apr 5 15:55:34 2013 +0200
+
+    rados.py: fix create_pool()
+    
+    Call rados_pool_create_with_all() only if auid and crush_rule
+    are set properly. In case only crush_rule is set call
+    rados_pool_create_with_crush_rule() on librados, not the other
+    way around.
+    
+    Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
+    (cherry picked from commit 94a1f25e7230a700f06a2699c9c2b99ec1bf7144)
+
+commit 1d0bf61da98bec7318f44b95a49298e13b792b70
+Author: Dan Mick <dan.mick@inktank.com>
+Date:   Mon Apr 8 13:52:32 2013 -0700
+
+    mon: Use _daemon version of argparse functions
+    
+    Allow argparse functions to fail if no argument given by using
+    special versions that avoid the default CLI behavior of "cerr/exit"
+    
+    Fixes: #4678
+    Signed-off-by: Dan Mick <dan.mick@inktank.com>
+    Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
+    (cherry picked from commit be801f6c506d9fbfb6c06afe94663abdb0037be5)
+    
+    Conflicts:
+       src/mon/Monitor.cc
+
+commit 3769250acf42a751ee8dfa95207a4ffafd25574a
+Author: Dan Mick <dan.mick@inktank.com>
+Date:   Mon Apr 8 13:49:22 2013 -0700
+
+    ceph_argparse: add _daemon versions of argparse calls
+    
+    mon needs to call argparse for a couple of -- options, and the
+    argparse_witharg routines were attempting to cerr/exit on missing
+    arguments.  This is appropriate for the CLI usage, but not the daemon
+    usage.  Add a 'cli' flag that can be set false for the daemon usage
+    (and cause the parsing routine to return false instead of exit).
+    
+    The daemon's parsing code due for a rewrite soon.
+    
+    Signed-off-by: Dan Mick <dan.mick@inktank.com>
+    Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
+    (cherry picked from commit c76bbc2e6df16d283cac3613628a44937e38bed8)
+
+commit 1f3b4917cc5c4d796a96637912d2ae5ce2877861
+Author: Alexandre Oliva <oliva@gnu.org>
+Date:   Wed Feb 6 15:27:13 2013 -0200
+
+    silence logrotate some more
+    
+    I was getting email with logrotate error output from “which invoke-rc.d”
+    on systems without an invoke-rc.d.  This patch silences it.
+    
+    Silence stderr from which when running logrotate
+    
+    From: Alexandre Oliva <oliva@gnu.org>
+    
+    Signed-off-by: Alexandre Oliva <oliva@gnu.org>
+    (cherry picked from commit d02340d90c9d30d44c962bea7171db3fe3bfba8e)
+
+commit e6eace2334d04fc9292c96a843304d1748b5bbe7
+Merge: 8cb13a1 1507443
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Fri Mar 29 12:14:22 2013 -0700
+
+    Merge remote-tracking branch 'upstream/bobtail-4556' into bobtail
+    
+    Reviewed-by: Samuel Just <sam.just@inktank.com>
+
+commit 8cb13a195c592fd2f17889e77d717c1864f97dca
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Feb 14 14:03:56 2013 -0800
+
+    OSD: always activate_map in advance_pgs, only send messages if up
+    
+    We should always handle_activate_map() after handle_advance_map() in
+    order to kick the pg into a valid peering state for processing requests
+    prior to dropping the lock.
+    
+    Additionally, we would prefer to avoid sending irrelevant messages
+    during boot, so only send if we are up according to the current service
+    osdmap.
+    
+    Fixes: #4572
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 4dfcad44431855ba7d68a1ccb41dc3cb5db6bb50)
+
+commit d89ab0ea6fa8d0961cad82f6a81eccbd3bbd3f55
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Thu Mar 28 14:09:17 2013 -0700
+
+    PG: update PGPool::name in PGPool::update
+    
+    Fixes: #4471
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit f804892d725cfa25c242bdc577b12ee81dcc0dcc)
+
+commit 750626108616761512271d5a4f10dee82a54e460
+Author: Samuel Just <sam.just@inktank.com>
+Date:   Tue Mar 26 15:10:37 2013 -0700
+
+    ReplicatedPG: send entire stats on OP_BACKFILL_FINISH
+    
+    Otherwise, we update the stat.stat structure, but not the
+    stat.invalid_stats part.  This will result in a recently
+    split primary propogating the invalid stats but not the
+    invalid marker.  Sending the whole pg_stat_t structure
+    also mirrors MOSDSubOp.
+    
+    Fixes: #4557
+    Backport: bobtail
+    Signed-off-by: Samuel Just <sam.just@inktank.com>
+    Reviewed-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 76b296f01fd0d337c8fc9f79013883e62146f0c6)
+
+commit 1507443271fda933032ef0877aff1890d4fd5b63
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 13:19:03 2013 -0700
+
+    osd: disallow classes with flags==0
+    
+    They must be RD, WR, or something....
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 89c69016e1dddb9f3ca40fd699e4a995ef1e3eee)
+
+commit 6b6e0cef99e66b46ade35ab262f071982049bc22
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 12:59:41 2013 -0700
+
+    osd: EINVAL when rmw_flags is 0
+    
+    A broken client (e.g., v0.56) can send a request that ends up with an
+    rmw_flags of 0.  Treat this as invalid and return EINVAL.
+    
+    Fixes: #4556
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit f2dda43c9ed4fda9cfa87362514985ee79e0ae15)
+
+commit 4bdd37495cedb1cf30a5311548492fe3f5db6e92
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 13:08:38 2013 -0700
+
+    osd: fix detection of non-existent class method
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+    (cherry picked from commit 50b831e3641c21cd5b145271688189e199f432d1)
+
+commit f28800f8b65e90a3b96429f07197236e6c9bf1a2
+Author: Sage Weil <sage@inktank.com>
+Date:   Wed Mar 27 13:12:38 2013 -0700
+
+    osd: tolerate rmw_flags==0
+    
+    We will let OSD return a proper error instead of asserting.
+    
+    This is effectively a backport of c313423cfda55a2231e000cd5ff20729310867f8.
+    
+    Signed-off-by: Sage Weil <sage@inktank.com>
+
+commit 94321ccdff81d5d6cea1acdb54344c3d930a49eb
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Thu Feb 21 17:39:19 2013 -0800
+
+    test_librbd_fsx: fix image closing
+    
+    Always close the image we opened in check_clone(), and check the
+    return code of the rbd_close() called before cloning.
+    
+    Refs: #3958
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 94ae72546507799667197fd941633bb1fd2520c2)
+
+commit 7fbc1ab69267e6be96665b0d4e277dc4a07f9220
+Author: Josh Durgin <josh.durgin@inktank.com>
+Date:   Wed Mar 13 17:05:42 2013 -0700
+
+    rbd: remove fiemap use from import
+    
+    On some kernels and filesystems fiemap can be racy and provide
+    incorrect data even after an fsync. Later we can use SEEK_HOLE and
+    SEEK_DATA, but for now just detect zero runs like we do with stdin.
+    
+    Basically this adapts import from stdin to work in the case of a file
+    or block device, and gets rid of other cruft in the import that used
+    fiemap.
+    
+    Fixes: #4388
+    Backport: bobtail
+    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
+    (cherry picked from commit 3091283895e8ffa3e4bda13399318a6e720d498f)
index ab1009729481f89944dd2a22977b0ce3e80b2918..68fed0101d82069e994496e3395f6979af7c3dd8 100644 (file)
@@ -460,6 +460,7 @@ Notable changes
 * udev: fixed rules for redhat-based distros
 * build fixes for raring
 
+For more detailed information, see :download:`the complete changelog <changelog/v0.56.5.txt>`.
 
 v0.56.4 "bobtail"
 -----------------
@@ -498,6 +499,7 @@ Notable changes
 * mds: on-disk format revision (see upgrading note above)
 * mkcephfs, init-ceph: close potential security issues with predictable filenames
 
+For more detailed information, see :download:`the complete changelog <changelog/v0.56.4.txt>`.
 
 v0.56.3 "bobtail"
 -----------------
@@ -542,6 +544,8 @@ Notable changes
 * librbd: fix handling for interrupted 'unprotect' operations
 * mds, ceph-fuse: allow file and directory layouts to be modified via virtual xattrs
 
+For more detailed information, see :download:`the complete changelog <changelog/v0.56.3.txt>`.
+
 
 v0.56.2 "bobtail"
 -----------------