commit 920f82e805efec2cae05b79c155c07df0f3ed5dd
Author: Gary Lowell <gary.lowell@inktank.com>
Date:   Mon Jan 7 21:08:08 2013 -0800

    v0.48.3argonaut

commit 213e3559dd260a2e19324f2a671c808261249f96
Author: Sage Weil <sage@inktank.com>
Date:   Sun Jan 6 20:43:21 2013 -0800

    osd: fix race in do_recovery()
    
    Verify that the PG is still RECOVERING or BACKFILL when we take the pg
    lock in the recovery thread.  This prevents a crash from an invalid
    state machine event when the recovery queue races with a PG state change
    (e.g., due to peering).
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    Reviewed-by: Samuel Just <sam.just@inktank.com>

commit e410d1a066b906cad3103a5bbfa5b4509be9ac37
Author: Samuel Just <sam.just@inktank.com>
Date:   Fri Jan 4 21:19:45 2013 -0800

    ReplicatedPG: requeue waiting_for_ondisk in apply_and_flush_repops
    
    Fixes: #3722
    Signed-off-by: Samuel Just <sam.just@inktank.com>
    Reviewed-by: Sage Weil <sage@inktank.com>

commit cd5f2bfdbb7fbf9237bef482845644cc41fa66de
Author: Josh Durgin <josh.durgin@inktank.com>
Date:   Thu Nov 15 16:20:33 2012 -0800

    ObjectCacher: fix off-by-one error in split
    
    This error left a completion that should have been attached
    to the right BufferHead on the left BufferHead, which would
    result in the completion never being called unless the buffers
    were merged before it's original read completed. This would cause
    a hang in any higher level waiting for a read to complete.
    
    The existing loop went backwards (using a forward iterator),
    but stopped when the iterator reached the beginning of the map,
    or when a waiter belonged to the left BufferHead.
    
    If the first list of waiters should have been moved to the right
    BufferHead, it was skipped because at that point the iterator
    was at the beginning of the map, which was the main condition
    of the loop.
    
    Restructure the waiters-moving loop to go forward in the map instead,
    so it's harder to make an off-by-one error.
    
    Possibly-fixes: #3286
    Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
    (cherry picked from commit 2e862f4d183d8b57b43b0777737886f18f68bf00)

commit 802c486fd0913e9fe58ae7ff72df135f99712358
Author: Sage Weil <sage@inktank.com>
Date:   Fri Jan 4 11:07:48 2013 -0800

    config: change default log_max_recent to 10,000
    
    Commit c34e38bcdc0460219d19b21ca7a0554adf7f7f84 meant to do this but got
    the wrong number of zeros.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit 39a734fbf34ccd121f17023bcec814e61c8bdaab
Author: Sage Weil <sage@inktank.com>
Date:   Thu Jan 3 17:15:07 2013 -0800

    os/FileStore: fix non-btrfs op_seq commit order
    
    The op_seq file is the starting point for journal replay.  For stable btrfs
    commit mode, which is using a snapshot as a reference, we should write this
    file before we take the snap.  We normally ignore current/ contents anyway.
    
    On non-btrfs file systems, however, we should only write this file *after*
    we do a full sync, and we should then fsync(2) it before we continue
    (and potentially trim anything from the journal).
    
    This fixes a serious bug that could cause data loss and corruption after
    a power loss event.  For a 'kill -9' or crash, however, there was little
    risk, since the writes were still captured by the host's cache.
    
    Fixes: #3721
    Signed-off-by: Sage Weil <sage@inktank.com>
    Reviewed-by: Samuel Just <sam.just@inktank.com>
    (cherry picked from commit 28d59d374b28629a230d36b93e60a8474c902aa5)

commit 49416619d733572368e5d2ba7f2b34150c754b23
Author: Sage Weil <sage@inktank.com>
Date:   Fri Dec 28 13:07:18 2012 -0800

    log: broadcast cond signals
    
    We were using a single cond, and only signalling one waiter.  That means
    that if the flusher and several logging threads are waiting, and we hit
    a limit, we the logger could signal another logger instead of the flusher,
    and we could deadlock.
    
    Similarly, if the flusher empties the queue, it might signal only a single
    logger, and that logger could re-signal the flusher, and the other logger
    could wait forever.
    
    Intead, break the single cond into two: one for loggers, and one for the
    flusher.  Always signal the (one) flusher, and always broadcast to all
    loggers.
    
    Backport: bobtail, argonaut
    Signed-off-by: Sage Weil <sage@inktank.com>
    Reviewed-by: Dan Mick <dan.mick@inktank.com>
    (cherry picked from commit 813787af3dbb99e42f481af670c4bb0e254e4432)

commit f8bb4814d0fd7e08c9b6cdcde02940bf1b42cadd
Author: Sage Weil <sage@inktank.com>
Date:   Wed Jan 2 13:58:44 2013 -0800

    log: fix locking typo/stupid for dump_recent()
    
    We weren't locking m_flush_mutex properly, which in turn was leading to
    racing threads calling dump_recent() and garbling the crash dump output.
    
    Backport: bobtail, argonaut
    Signed-off-by: Sage Weil <sage@inktank.com>
    Reviewed-by: Dan Mick <dan.mick@inktank.com>
    (cherry picked from commit 43cba617aa0247d714632bddf31b9271ef3a1b50)

commit 9483a032f750572586f146c696ec6501d3df0383
Author: Sage Weil <sage@inktank.com>
Date:   Thu Dec 27 16:06:24 2012 -0800

    init-ceph: fix status version check across machines
    
    The local state isn't propagated into the backtick shell, resulting in
    'unknown' for all remote daemons.  Avoid backticks altogether.
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit 6c7b667badc5e7608b69c533a119a2afc062e257)

commit 8fef9360fe949fbf4ee6e468c36cc1c84b369b6e
Author: Travis Rhoden <trhoden@gmail.com>
Date:   Mon Aug 20 13:29:11 2012 -0700

    init-ceph: use SSH in "service ceph status -a" to get version
    
    When running "service ceph status -a", a version number was never
    returned for remote hosts, only for the local.  This was because
    the command to query the version number didn't use the do_cmd
    function, which is responsible for running the command over SSH
    when needed.
    
    Modify the ceph init.d script to use do_cmd for querying the
    Ceph version.
    
    Signed-off-by: Travis Rhoden <trhoden@gmail.com>
    (cherry picked from commit 60fdb6fda6233b01dae4ed8a34427d5960840b84)

commit c34e38bcdc0460219d19b21ca7a0554adf7f7f84
Author: Sage Weil <sage@inktank.com>
Date:   Wed Nov 28 13:00:36 2012 -0800

    log: 10,000 recent log entries
    
    This is what we were (wrongly) doing before, so there are no memory
    utilization surprises.
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit 78286b1403a5e0f14f95fe6b92f2fdb163e909f1)

commit 4daede79f578cccd340210752f912e685b1ff03d
Author: Sage Weil <sage@inktank.com>
Date:   Wed Nov 28 12:59:43 2012 -0800

    log: fix log_max_recent config
    
    <facepalm>
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit 4de7748b72d4f90eb1197a70015c199c15203354)

commit fdae0552a0b8b1a634775609b473aff9221904f3
Author: Sage Weil <sage@inktank.com>
Date:   Thu Dec 20 13:48:06 2012 -0800

    log: fix flush/signal race
    
    We need to signal the cond in the same interval where we hold the lock
    *and* modify the queue.  Otherwise, we can have a race like:
    
     queue has 1 item, max is 1.
     A: enter submit_entry, signal cond, wait on condition
     B: enter submit_entry, signal cond, wait on condition
     C: flush wakes up, flushes 1 previous item
     A: retakes lock, enqueues something, exits
     B: retakes lock, condition fails, waits
      -> C is never woken up as there are 2 items waiting
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    Reviewed-by: Dan Mick <dan.mick@inktank.com>
    (cherry picked from commit 50914e7a429acddb981bc3344f51a793280704e6)

commit bdcf6647dec05617d3da46ad00459498ede94f1d
Author: Gary Lowell <gary.lowell@inktank.com>
Date:   Fri Dec 21 17:12:07 2012 -0800

    .gitignore:  Add ar-lib to ignore list

commit 51a900cfd7cc009f03fdb80be028015fc34547d2
Author: Gary Lowell <gary.lowell@inktank.com>
Date:   Fri Dec 21 16:55:27 2012 -0800

    autogen.sh:  Create m4 directory for leveldb
    
    Signed-off-by: Gary Lowell <gary.lowell@inktank.com>

commit 74473bb667df0ee0bb1adc6c43242733b80aa10d
Author: Gary Lowell <gary.lowell@inktank.com>
Date:   Fri Dec 21 16:17:33 2012 -0800

    leveldb:  Update submodule
    
    Signed-off-by: Gary Lowell <gary.lowell@inktank.com>

commit bc4f74c7b9ec4e6bbcf4ab4ab68a82a69b8eaca5
Author: Gary Lowell <gary.lowell@inktank.com>
Date:   Thu Dec 20 16:49:32 2012 -0800

    ceph.spec.in:  Fedora builds debuginfo by default.
    
    Signed-off-by: Gary Lowell <gary.lowell@inktank.com>

commit 3ed2d59e98494a0da29f4bb8537471237a6f8e93
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Wed Dec 19 17:07:18 2012 -0800

    rgw: fix error handling with swift
    
    Fixes: #3649
    verify_swift_token returns a bool and not an int.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit dfd310368267df848f2b65cc536b4ffcb039d353
Author: Sam Lang <sam.lang@inktank.com>
Date:   Mon Sep 24 09:55:25 2012 -0700

    client: Fix for #3184 cfuse segv with no keyring
    
    Fixes bug #3184 where the ceph-fuse client segfaults if authx is
    enabled but no keyring file is present.  This was due to the
    client->init() return value not getting checked.
    
    Signed-off-by: Sam Lang <sam.lang@inktank.com>
    (cherry picked from commit 47983df4cbd31f299eef896b4612d3837bd7c7bd)

commit acebcce91448421c34a72850a380fcd1aabe9f41
Author: Joao Eduardo Luis <joao.luis@inktank.com>
Date:   Tue Oct 9 21:25:54 2012 +0100

    mon: Monitor: resolve keyring option to a file before loading keyring
    
    Otherwise our keyring default location, or any other similarly formatted
    location, will be taken as the actual location for the keyring and fail.
    
    Reported-by: tziOm (at) #ceph
    Fixes: 3276
    Backport: argonaut
    
    Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
    (cherry picked from commit 7ef0df25e001bfae303feb3ae36514608767b1f2)

commit 7ab00a796d2233c3804f52fbba16c2f3ed0c297b
Author: Gary Lowell <glowell@inktank.com>
Date:   Wed Dec 5 19:39:11 2012 -0800

    .gitignore:  Add m4 macro directories to ignore list

commit b781ac00e16fd802b6e055dd9d453271db6efa39
Author: Gary Lowell <glowell@inktank.com>
Date:   Thu Nov 8 12:43:24 2012 -0800

    build:  Add RPM release string generated from git describe.
    
    Fix for bug 3451.  Use the commit count and sha1 from git describe to
    construct a release string for rpm packages.
    
    Conflicts:
    
    	configure.ac

commit f60c9b6600a85b840a02e145bac77326d60fd03f
Author: Gary Lowell <glowell@inktank.com>
Date:   Fri Nov 9 13:28:13 2012 -0800

    ceph.spec.in:  Build debuginfo subpackage.
    
    This is a partial fix for bug 3471.  Enable building of debuginfo package.
    Some distributions enable this automatically by installing additional rpm
    macros, on others it needs to be explicity added to the spec file.

commit 7fbf9476cb44ce256f4bb2366f46fa20cb570eda
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Dec 3 14:32:28 2012 -0800

    rgw: fix swift auth concurrency issue
    
    Fixes: #3565
    Originally ops were using static structures, but that
    has since changed. Switching swift auth handler to do
    the same.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit 0639cd9c479d69b077175f0385eb569ebb839349
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Thu Nov 29 13:39:22 2012 -0800

    rgw: fix rgw_tools get_obj()
    
    The original implementation broke whenever data exceeded
    the chunk size. Also don't keep cache for objects that
    exceed the chunk size as cache is not designed for
    it. Increased chunk size to 512k.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit 84983387a220a29540aca64af774bbe7bc6b5ee6
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Thu Nov 29 12:47:59 2012 -0800

    rgw: fix PUT acls
    
    This fixes a regression introduced at
    17e4c0df44781f5ff1d74f3800722452b6a0fc58. The original
    patch fixed error leak, however it also removed the
    operation's send_response() call.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit 6c1e2b663227cadff4255db3321976882df6b261
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Nov 19 17:10:11 2012 -0800

    rgw: fix xml parser leak
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
    (cherry picked from commit f86522cdfcd81b2d28c581ac8b8de6226bc8d1a4)

commit 17e4c0df44781f5ff1d74f3800722452b6a0fc58
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Nov 19 16:52:38 2012 -0800

    rgw: fix memory leaks
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
    (cherry picked from commit 98a04d76ebffa61c3ba4b033cdd57ac57b2f29f3)
    
    Conflicts:
    	src/rgw/rgw_op.cc
    	src/rgw/rgw_op.h

commit cd18b9f43cce68ac3d8f109e82a5b603f9caad9b
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Wed Nov 7 13:21:15 2012 -0800

    rgw: don't convert object mtime to UTC
    
    Fixes: #3452
    When we read object info, don't try to convert mtime to
    UTC, it's already in UTC.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit ddb40dec6e8d930fd63a71ef1c98279d6472e3e4
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Wed Nov 14 11:30:34 2012 -0800

    rgw: relax date format check
    
    Don't try to parse beyond the GMT or UTC. Some clients use
    special date formatting. If we end up misparsing the date
    it'll fail in the authorization, so don't need to be too
    restrictive.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit e35e7e2bcb749e3ee00f1f93bc6b17bde8329414
Author: Sage Weil <sage@inktank.com>
Date:   Tue Oct 30 14:17:56 2012 -0700

    ceph-disk-activate: avoid duplicating mounts if already activated
    
    If the given device is already mounted at the target location, do not
    mount --move it again and create a bunch of dup entries in the /etc/mtab
    and kernel mount table.
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit c435d314caeb5424c1f4482ad02f8a085317ad5b)

commit 0c9bbb3b4b4dbe6f0a12960785e35af9c748701a
Author: Sage Weil <sage@inktank.com>
Date:   Thu Oct 25 21:21:18 2012 -0700

    ceph-disk-prepare: poke kernel into refreshing partition tables
    
    Prod the kernel to refresh the partition table after we create one.  The
    partprobe program is packaged with parted, which we already use, so this
    introduces no new dependency.
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit 402e1f5319a52c309eca936081fddede1f107268)

commit b4004806ec387915ba4e039b9bc1c563273ef08f
Author: Sage Weil <sage@inktank.com>
Date:   Thu Oct 25 21:20:21 2012 -0700

    ceph-disk-prepare: fix journal partition creation
    
    The end value needs to have + to indicate it is relative to wherever the
    start is.
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit 2e32a0ee2d9e2a3bf5b138f50efc5fba8d5b8660)

commit efac1bb19f1ca3851c7b51d96cb4e82d8d142a45
Author: Sage Weil <sage@inktank.com>
Date:   Thu Oct 25 18:14:47 2012 -0700

    ceph-disk-prepare: assume parted failure means no partition table
    
    If the disk has no valid label we get an error like
    
      Error: /dev/sdi: unrecognised disk label
    
    Assume any error we get is that and go with an id label of 1.
    
    Signed-off-by: Sage Weil <sage@inktank.com>
    (cherry picked from commit 8921fc7c7bc28fb98334c06f1f0c10af58085085)

commit 39b9da403541617fb088aa4ae03925850aa2de65
Merge: 83ab366 8c115d3
Author: Sage Weil <sage@inktank.com>
Date:   Mon Nov 12 11:24:00 2012 -0800

    Merge remote-tracking branch 'gh/wip-mds-stable' into stable

commit 8c115d3e81543a4c723bae217ba5b9d2c0e988f7
Author: Sage Weil <sage@inktank.com>
Date:   Fri Nov 9 05:28:12 2012 -0800

    mds: re-try_set_loner() after doing evals in eval(CInode*, int mask)
    
    Consider a case where current loner is A and wanted loner is B.
    At the top of the function we try to set the loner, but that may fail
    because we haven't processed the gathered caps yet for the previous
    loner.  In the body we do that and potentially drop the old loner, but we
    do not try_set_loner() again on the desired loner.
    
    Try after our drop.  If it succeeds, loop through the eval's one more time
    so that we can issue caps approriately.
    
    This fixes a hang induced by a simple loop like:
    
     while true ; do echo asdf >> mnt.a/foo ; tail mnt.b/foo ; done &
     while true ; do ls mnt.a mnt.b ; done
    
    (The second loop may not be necessary.)
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit 1a23bd6981e2a308be4a905021453a6d5feac9e3
Author: Samuel Just <sam.just@inktank.com>
Date:   Fri Jul 13 14:23:27 2012 -0700

    CompatSet: users pass bit indices rather than masks
    
    CompatSet users number the Feature objects rather than
    providing masks.  Thus, we should do
    
    mask |= (1 << f.id) rather than mask |= f.id.
    
    In order to detect old, broken encodings, the lowest
    bit will be set in memory but not set in the encoding.
    We can reconstruct the correct mask from the names map.
    
    This bug can cause an incompat bit to not be detected
    since 1|2 == 1|2|3.
    
    fixes: #2748
    
    Signed-off-by: Samuel Just <sam.just@inktank.com>

commit 83ab36655f397b7d781a611b4d82679c8484710f
Author: Gary Lowell <glowell@inktank.com>
Date:   Wed Nov 7 12:41:10 2012 -0800

    ceph.spec.in:  Remove ceph version requirement from ceph-fuse package.
    
    The ceph-fuse rpm package now only requires ceph as a pre-req, not a specific
    version.

commit 578b5764d5b26d190c295da88c1be5f0c77682a7
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Wed Oct 24 13:15:46 2012 -0700

    rgw: fix multipart overwrite
    
    Fixes: #3400
    Removed a few lines of code that prematurely created the head
    part of the final object (before creating the manifest).
    
    backport:argonaut
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit 96888ddf154231daa6c7138bb2b97674771cc610
Author: Sage Weil <sage@inktank.com>
Date:   Mon Nov 5 23:27:13 2012 -0800

    mds: move to from loner -> mix if *anyone* wants rd|wr
    
    We were either going to MIX or SYNC depending on whether non-loners wanted
    to read/write, but it may be that the loner wants to if our logic for
    choosing loner vs not longer is based on anything other that just rd|wr
    wanted.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit b940d7750d14285fc85ce63b0f0444b58ad3ad93
Author: Sage Weil <sage@inktank.com>
Date:   Mon Nov 5 23:26:09 2012 -0800

    mds: base loner decision on wanted RD|WR|EXCL, not CACHE|BUFFER
    
    Observed instance where one client wanted the Fc cap and prevented the
    loner from getting RD|WR caps.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit 7a82a3214a38cbc7b5750adba23b760a4f51643a
Author: Sage Weil <sage@inktank.com>
Date:   Tue Oct 30 09:00:11 2012 -0700

    osd: make pool_snap_info_t encoding backward compatible
    
    Way back in fc869dee1e8a1c90c93cb7e678563772fb1c51fb (v0.42) when we redid
    the osd type encoding we forgot to make this conditionally encode the old
    format for old clients.  In particular, this means that kernel clients
    will fail to decode the osdmap if there is a rados pool with a pool-level
    snapshot defined.
    
    Fixes: #3290
    Signed-off-by: Sage Weil <sage@inktank.com>
    
    Conflicts:
    
    	src/test/encoding/types.h

commit 8d7ca76182fdc04aaf8b698afbbd2d9b22e07fdc
Author: Yan, Zheng <zheng.z.yan@intel.com>
Date:   Fri Sep 7 13:49:27 2012 +0800

    osd/OSD.cc: Fix typo in OSD::heartbeat_check()
    
    The check 'p->second.last_tx > cutoff' should always be false
    since last_tx is periodically updated by OSD::heartbeat()
    
    Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
    Signed-off-by: Sage Weil <sage@inktank.com>

commit fc2b3ced4f7ed8d6e065c159fbeb8670fcdaca2a
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Oct 22 16:52:11 2012 -0700

    rgw: dump an error message if FCGX_Accept fails
    
    Adding missing debug info.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit d9b51b3b7011f4551fe27e33301b26cd23a72378
Author: Sage Weil <sage@inktank.com>
Date:   Mon Oct 22 15:38:30 2012 -0700

    workqueue: make debug output include active threads
    
    Include active thread count in threadpool debug output.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit 852e27d3e19239a696fa693e2a30c3226d27a611
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Oct 22 13:16:59 2012 -0700

    rgw: don't continue processing of GET request on error
    
    Fixes #3381
    We continued processing requests long after the client
    has died. This fix appliese to both s3 and swift.
    
    backport: argonaut
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit 5f2b9b451da5a96fdbf9cf292648feb40dc13d28
Author: Sage Weil <sage@inktank.com>
Date:   Fri Oct 19 08:46:19 2012 -0700

    osd: be quiet about watches
    
    Useless log noise.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit ea42eb1f7866fed0e843257ce05e34503fd0129c
Author: Sage Weil <sage@inktank.com>
Date:   Wed Oct 17 17:44:12 2012 -0700

    addr_parsing: make , and ; and ' ' all delimiters
    
    Instead of just ,.  Currently "foo.com, bar.com" will fail because of the
    space after the comma.  This patches fixes that, and makes all delim
    chars interchangeable.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit b0164d9902c834c95187f6b277f58a30d26cc4d3
Author: Tommi Virtanen <tv@inktank.com>
Date:   Fri Oct 5 10:57:42 2012 -0700

    ceph-disk-prepare, debian/control: Support external journals.
    
    Previously, ceph-disk-* would only let you use a journal that was a
    file inside the OSD data directory. With this, you can do:
    
      ceph-disk-prepare /dev/sdb /dev/sdb
    
    to put the journal as a second partition on the same disk as the OSD
    data (might save some file system overhead), or, more interestingly:
    
      ceph-disk-prepare /dev/sdb /dev/sdc
    
    which makes it create a new partition on /dev/sdc to use as the
    journal. Size of the partition is decided by $osd_journal_size.
    /dev/sdc must be a GPT-format disk. Multiple OSDs may share the same
    journal disk (using separate partitions); this way, a single fast SSD
    can serve as journal for multiple spinning disks.
    
    The second use case currently requires parted, so a Recommends: for
    parted has been added to Debian packaging.
    
    Closes: #3078
    Closes: #3079
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit 5a3076fd51706e32bc55b734099037520299003b
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Oct 15 09:43:47 2012 -0700

    rgw: don't add port to url if already has one
    
    Fixes: #3296
    Specifically, is host name string already has ':', then
    don't try to append theport (swift auth).
    
    backport: argonaut
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit d76b71caa99a39035ea6ed9db6ca0994975d38af
Author: Sage Weil <sage@inktank.com>
Date:   Mon Oct 15 16:37:05 2012 -0700

    admin_socket: fix '0' protocol version
    
    Broken by 895e24d198ced83ab7fed3725f12f75e3bc97b0b.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit 714254cb0522b194118eb854f90d4c3971e8c6b3
Author: Sage Weil <sage@inktank.com>
Date:   Mon Oct 8 17:14:22 2012 -0700

    mon: drop command replies on paxos reset
    
    If paxos resets, do not send the reply for the commit we were waiting for;
    let the command be reprocessed and re-proposed.
    
    Among other things, this could lead to nondeterministic results for
    'ceph osd create <uuid>'.
    
    Signed-off-by: Sage Weil <sage@inktank.com>

commit d9e981f4209da9a0e000d434e28686a133b25f11
Merge: 5d84b4a 13b448b
Author: Sage Weil <sage@inktank.com>
Date:   Mon Oct 8 21:02:51 2012 -0700

    Merge remote-tracking branch 'gh/for-stable-fstypes-and-ext-journal' into stable

commit 5d84b4a22b2ff975679711719f336a312a6edff3
Author: Tommi Virtanen <tv@inktank.com>
Date:   Thu Aug 2 13:02:04 2012 -0700

    ceph-authtool: Fix usage, it's --print-key not --print.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit 13b448b8ce959f31d07cd1827614c445c410aa62
Author: Tommi Virtanen <tv@inktank.com>
Date:   Fri Oct 5 09:22:34 2012 -0700

    upstart: OSD journal can be a symlink; if it's dangling, don't start.
    
    This lets a $osd_data/journal symlink point to
    /dev/disk/by-partuuid/UUID and the osd will not attempt to start until
    that disk is available.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit d9dfa2d17859ca07d735b8e35c5dc00a25995153
Author: Sage Weil <sage@inktank.com>
Date:   Fri Oct 5 09:10:31 2012 -0700

    osd: Make --get-journal-fsid not really start the osd.
    
    This way, it won't need -i ID and it won't access the osd_data_dir.
    That makes it useful for locating the right osd to use with an
    external journal partition.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit f65daf3f24830a28e85ebe7c6fce2642f5fc6dd8
Author: Tommi Virtanen <tv@inktank.com>
Date:   Fri Oct 5 09:08:56 2012 -0700

    osd: Make --get-journal-fsid not attempt aio or direct_io.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit 86546d7dec6cd5080162d1f3d7de2c579736dd65
Author: Tommi Virtanen <tv@inktank.com>
Date:   Thu Oct 4 16:03:40 2012 -0700

    ceph-disk-prepare: Use the OSD uuid as the partition GUID.
    
    This will make locating the right data partition for a given journal
    partition a lot easier.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit fa3aa41ead0be5a27695e3c208c5af00af90bc53
Author: Tommi Virtanen <tv@inktank.com>
Date:   Wed Oct 3 12:38:38 2012 -0700

    debian/control, ceph-disk-prepare: Depend on xfsprogs, use xfs by default.
    
    Ext4 as a default is a bad choice, as we don't perform enough QA with
    it. To use XFS as the default for ceph-disk-prepare, we need to depend
    on xfsprogs.
    
    btrfs-tools is already recommended, so no change there. If you set
    osd_fs_type=btrfs, and don't have the package installed, you'll just
    get an error message.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit 4c3997dc8bbd3985a7b86d8c54b71fbe15af1591
Author: Tommi Virtanen <tv@inktank.com>
Date:   Wed Oct 3 10:13:17 2012 -0700

    ceph-disk-{prepare,activate}: Default mkfs arguments and mount options.
    
    The values for the settings were copied from teuthology task "ceph".
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit a6229b901785ef0a88d1b1886b5b5ae339ac7fcb
Author: Tommi Virtanen <tv@inktank.com>
Date:   Wed Oct 3 08:47:20 2012 -0700

    ceph-disk-prepare: Avoid triggering activate before prepare is done.
    
    Earlier testing never saw this, but now a mount of a disk triggers a
    udev blockdev-added event, causing ceph-disk-activate to run even
    before ceph-disk-prepare has had a chance to write the files and
    unmount the disk.
    
    Avoid this by using a temporary partition type uuid ("ceph 2 be"), and
    only setting it to the permanent ("ceph osd"). The hotplug event won't
    match the type uuid, and thus won't trigger ceph-disk-activate.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit 03cec77e2b0b4536349880de6890ad9537da0783
Author: Tommi Virtanen <tv@inktank.com>
Date:   Tue Oct 2 17:06:11 2012 -0700

    ceph-disk-activate: Add a comment about user_xattr being default now.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit 4aa13c6d228b9256870e02a57496f00a75e17349
Author: Tommi Virtanen <tv@inktank.com>
Date:   Tue Oct 2 16:53:35 2012 -0700

    ceph-disk-activate: Use mount options from ceph.conf
    
    Always uses default cluster name ("ceph") for now, see
    http://tracker.newdream.net/issues/3253
    
    Closes: #2548
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit b684ab1d1727b23f75f232123f1da947df2e5e63
Author: Tommi Virtanen <tv@inktank.com>
Date:   Tue Oct 2 16:43:08 2012 -0700

    ceph-disk-activate: Refactor to extract detect_fstype call.
    
    This allows us to use the fstype for a config lookup.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit ce5e1f8dfaa8675b0a1e9fa22ebf91be9652aa01
Author: Tommi Virtanen <tv@inktank.com>
Date:   Tue Oct 2 16:37:07 2012 -0700

    ceph-disk-activate: Unmount on errors (if it did the mount).
    
    This cleans up the error handling to not leave disks mounted
    in /var/lib/ceph/tmp/mnt.* when something fails, e.g. when
    the ceph command line tool can't talk to mons.
    
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit da86e4e43676ceaf0b39635954489c297de88025
Author: Tommi Virtanen <tv@inktank.com>
Date:   Tue Oct 2 16:23:55 2012 -0700

    ceph-disk-prepare: Allow setting mkfs arguments and mount options in ceph.conf
    
    Tested with meaningless but easy-to-verify values:
    
      [global]
      osd_fs_type = xfs
      osd_fs_mkfs_arguments_xfs = -i size=512
      osd_fs_mount_options_xfs = noikeep
    
    ceph-disk-activate does not respect the mount options yet.
    
    Closes: #2549
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit cf2e3b15cea99cc100169e7a67103676d8990aee
Author: Tommi Virtanen <tv@inktank.com>
Date:   Tue Oct 2 16:04:15 2012 -0700

    ceph-disk-prepare: Allow specifying fs type to use.
    
    Either use ceph.conf variable osd_fs_type or command line option
    --fs-type=
    
    Default is still ext4, as currently nothing guarantees xfsprogs
    or btrfs-tools are installed.
    
    Currently both btrfs and xfs seems to trigger a disk hotplug event at
    mount time, thus triggering a useless and unwanted ceph-disk-activate
    run. This will be worked around in a later commit.
    
    Currently mkfs and mount options cannot be configured.
    
    Bug: #2549
    Signed-off-by: Tommi Virtanen <tv@inktank.com>

commit f031046c4d600ce0a0c2c9ad5856dc100b0901fb
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Wed Sep 26 15:43:56 2012 -0700

    rgw: copy_object should not override ETAG implicitly
    
    When copying an object with new attrs, we still need to
    maintain the ETAG.
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

commit 2fddfb0a95288d39cee2e82376297ce43296743b
Author: Yehuda Sadeh <yehuda@inktank.com>
Date:   Mon Sep 24 18:10:24 2012 -0700

    rgw: url_decode should allocate extra byte for dest
    
    Was missing extra byte for null termination
    
    Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
