)]}'
{
  "log": [
    {
      "commit": "e00de341fdb76c955703b4438100f9933c452b7f",
      "tree": "ab776a5e46f1cb5acaa6b26484763259040f470c",
      "parents": [
        "e76661d0a59e53e5cc4dccbe4b755d1dc8a968ec"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:25:05 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:25:05 2011 -0800"
      },
      "message": "libceph: fix msgr standby handling\n\nThe standby logic used to be pretty dependent on the work requeueing\nbehavior that changed when we switched to WQ_NON_REENTRANT.  It was also\nvery fragile.\n\nRestructure things so that:\n - We clear WRITE_PENDING when we set STANDBY.  This ensures we will\n   requeue work when we wake up later.\n - con_work backs off if STANDBY is set.  There is nothing to do if we are\n   in standby.\n - clear_standby() helper is called by both con_send() and con_keepalive(),\n   the two actions that can wake us up again.  Move the connect_seq++\n   logic here.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e76661d0a59e53e5cc4dccbe4b755d1dc8a968ec",
      "tree": "371ed08c5d00dbcdcf6f18e5cf36d798bcc51180",
      "parents": [
        "60bf8bf8815e6adea4c1d0423578c3b8000e2ec8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:10:15 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:24:31 2011 -0800"
      },
      "message": "libceph: fix msgr keepalive flag\n\nThere was some broken keepalive code using a dead variable.  Shift to using\nthe proper bit flag.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "60bf8bf8815e6adea4c1d0423578c3b8000e2ec8",
      "tree": "ce7140c32a3f177816f4029a88eb99e15bda6943",
      "parents": [
        "692d20f576fb26f62c83f80dbf3ea899998391b7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:24:28 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:24:28 2011 -0800"
      },
      "message": "libceph: fix msgr backoff\n\nWith commit f363e45f we replaced a bunch of hacky workqueue mutual\nexclusion logic with the WQ_NON_REENTRANT flag.  One pieces of fallout is\nthat the exponential backoff breaks in certain cases:\n\n * con_work attempts to connect.\n * we get an immediate failure, and the socket state change handler queues\n   immediate work.\n * con_work calls con_fault, we decide to back off, but can\u0027t queue delayed\n   work.\n\nIn this case, we add a BACKOFF bit to make con_work reschedule delayed work\nnext time it runs (which should be immediately).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "692d20f576fb26f62c83f80dbf3ea899998391b7",
      "tree": "91b3d1984b2986ea99c2b208de6dc65f1a74c701",
      "parents": [
        "38815b780285a4957852c5c9dbe94991c0b26c56"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 12:14:53 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 13:47:40 2011 -0800"
      },
      "message": "libceph: retry after authorization failure\n\nIf we mark the connection CLOSED we will give up trying to reconnect to\nthis server instance.  That is appropriate for things like a protocol\nversion mismatch that won\u0027t change until the server is restarted, at which\npoint we\u0027ll get a new addr and reconnect.  An authorization failure like\nthis is probably due to the server not properly rotating it\u0027s secret keys,\nhowever, and should be treated as transient so that the normal backoff and\nretry behavior kicks in.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "42961d2333a1855c649fa3790e258ab4f0fa66a4",
      "tree": "7858f28e3a3c5ff1f0dc6f6165251c68b9709b4d",
      "parents": [
        "98bdb0aa007ff7e8e0061936d8d0e210faf2e655"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 25 08:19:34 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 25 08:19:34 2011 -0800"
      },
      "message": "libceph: fix socket write error handling\n\nPass errors from writing to the socket up the stack.  If we get -EAGAIN,\nreturn 0 from the helper to simplify the callers\u0027 checks.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "98bdb0aa007ff7e8e0061936d8d0e210faf2e655",
      "tree": "78c32ad3f4aee581e1f17bc477791fbc102b672c",
      "parents": [
        "d66bbd441c08fe00ed2add1cf70cb243ebc2b27e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 25 08:17:48 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jan 25 08:17:48 2011 -0800"
      },
      "message": "libceph: fix socket read error handling\n\nIf we get EAGAIN when trying to read from the socket, it is not an error.\nReturn 0 from the helper in this case to simplify the error handling cases\nin the caller (indirectly, try_read).\n\nFix try_read to pass any error to it\u0027s caller (con_work) instead of almost\nalways returning 0.  This let\u0027s us respond to things like socket\ndisconnects.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f363e45fd1184219b472ea549cb7e192e24ef4d2",
      "tree": "1332feb2f7a0a47ce482a0fd4ee9afb547a27090",
      "parents": [
        "01e6acc4ea4c284c44bfb3d46c76f4ae580c6435"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jan 03 14:49:46 2011 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:14 2011 -0800"
      },
      "message": "net/ceph: make ceph_msgr_wq non-reentrant\n\nceph messenger code does a rather complex dancing around multithread\nworkqueue to make sure the same work item isn\u0027t executed concurrently\non different CPUs.  This restriction can be provided by workqueue with\nWQ_NON_REENTRANT.\n\nMake ceph_msgr_wq non-reentrant workqueue with the default concurrency\nlevel and remove the QUEUED/BUSY logic.\n\n* This removes backoff handling in con_work() but it couldn\u0027t reliably\n  block execution of con_work() to begin with - queue_con() can be\n  called after the work started but before BUSY is set.  It seems that\n  it was an optimization for a rather cold path and can be safely\n  removed.\n\n* The number of concurrent work items is bound by the number of\n  connections and connetions are independent from each other.  With\n  the default concurrency level, different connections will be\n  executed independently.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: ceph-devel@vger.kernel.org\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d96c9043d1588f04c7f467167f653c07d83232d5",
      "tree": "d4b68d2ee371db0287902cae2a27f37749e8e1c9",
      "parents": [
        "1cd275f609ba46c8cae3ee77e499c54a0d13a983"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 13 20:30:28 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 13 20:30:28 2010 -0800"
      },
      "message": "ceph: fix msgr_init error path\n\ncreate_workqueue() returns NULL on failure.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c5c6b19d4b8f5431fca05f28ae9e141045022149",
      "tree": "0961d9aeee49f481134089ac5b93b7118cf3a34b",
      "parents": [
        "b7495fc2ff941db6a118a93ab8d61149e3f4cef8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:40:00 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:43:17 2010 -0800"
      },
      "message": "ceph: explicitly specify page alignment in network messages\n\nThe alignment used for reading data into or out of pages used to be taken\nfrom the data_off field in the message header.  This only worked as long\nas the page alignment matched the object offset, breaking direct io to\nnon-page aligned offsets.\n\nInstead, explicitly specify the page alignment next to the page vector\nin the ceph_msg struct, and use that instead of the message header (which\nprobably shouldn\u0027t be trusted).  The alloc_msg callback is responsible for\nfilling in this field properly when it sets up the page vector.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "df9f86faf3ee610527ed02031fe7dd3c8b752e44",
      "tree": "361ecdca449c3f80d45ff33a291ad0ae544d7470",
      "parents": [
        "2f56f56ad991edd51ffd0baf1182245ee1277a04"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 01 15:49:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 01 15:49:23 2010 -0700"
      },
      "message": "ceph: fix small seq message skipping\n\nIf the client gets out of sync with the server message sequence number, we\nnormally skip low seq messages (ones we already received).  The skip code\nwas also incrementing the expected seq, such that all subsequent messages\nalso appeared old and got skipped, and an eventual timeout on the osd\nconnection.  This resulted in some lagging requests and console messages\nlike\n\n[233480.882885] ceph: skipping osd22 10.138.138.13:6804 seq 2016, expected 2017\n[233480.882919] ceph: skipping osd22 10.138.138.13:6804 seq 2017, expected 2018\n[233480.882963] ceph: skipping osd22 10.138.138.13:6804 seq 2018, expected 2019\n[233480.883488] ceph: skipping osd22 10.138.138.13:6804 seq 2019, expected 2020\n[233485.219558] ceph: skipping osd22 10.138.138.13:6804 seq 2020, expected 2021\n[233485.906595] ceph: skipping osd22 10.138.138.13:6804 seq 2021, expected 2022\n[233490.379536] ceph: skipping osd22 10.138.138.13:6804 seq 2022, expected 2023\n[233495.523260] ceph: skipping osd22 10.138.138.13:6804 seq 2023, expected 2024\n[233495.923194] ceph: skipping osd22 10.138.138.13:6804 seq 2024, expected 2025\n[233500.534614] ceph:  tid 6023602 timed out on osd22, will reset osd\n\nReported-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d14c5d2b6e15c21d8e5467dc62d33127c23a644",
      "tree": "7d123c47847df9d1e865b6b78dc7da3fe739b704",
      "parents": [
        "ae1533b62b3369e6ae32338f4a77d64d0e88f676"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 15:14:15 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:28 2010 -0700"
      },
      "message": "ceph: factor out libceph from Ceph file system\n\nThis factors out protocol and low-level storage parts of ceph into a\nseparate libceph module living in net/ceph and include/linux/ceph.  This\nis mostly a matter of moving files around.  However, a few key pieces\nof the interface change as well:\n\n - ceph_client becomes ceph_fs_client and ceph_client, where the latter\n   captures the mon and osd clients, and the fs_client gets the mds client\n   and file system specific pieces.\n - Mount option parsing and debugfs setup is correspondingly broken into\n   two pieces.\n - The mon client gets a generic handler callback for otherwise unknown\n   messages (mds map, in this case).\n - The basic supported/required feature bits can be expanded (and are by\n   ceph_fs_client).\n\nNo functional change, aside from some subtle error handling cases that got\ncleaned up in the refactoring process.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "68b4476b0bc13fef18266b4140309a30e86739d2",
      "tree": "47fab5ea2491c7bc75fe14a3b0d3a091eb6244b7",
      "parents": [
        "3499e8a5d4dbb083324efd942e2c4fb7eb65f27c"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 15:01:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:18 2010 -0700"
      },
      "message": "ceph: messenger and osdc changes for rbd\n\nAllow the messenger to send/receive data in a bio.  This is added\nso that we wouldn\u0027t need to copy the data into pages or some other buffer\nwhen doing IO for an rbd block device.\n\nWe can now have trailing variable sized data for osd\nops.  Also osd ops encoding is more modular.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "213c99ee0cf17ff0fbffb6fb540bd29615cd19d5",
      "tree": "168f72ba71feff5bf24707be622135b1016cdff5",
      "parents": [
        "40819f6fb227c1832935b775ac22aef10aa6f6dd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "message": "ceph: whitespace cleanup\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6a2593823ababdada2636398ac190931517b51cf",
      "tree": "7557b08cc90aa0d2c70ea5b0e6b22ff64a4c235d",
      "parents": [
        "c309f0ab26ca37663f368918553d02e90356c89d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jul 07 09:06:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: specify supported features in super.h\n\nSpecify the supported/required feature bits in super.h client code instead\nof using the definitions from the shared kernel/userspace headers (which\nwill go away shortly).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cd84db6e4051a9fb7941d49d31a0193a3371fd61",
      "tree": "beb657b2cc6b4184d97a85502b29a291616a83ab",
      "parents": [
        "ca81f3f6bd759f90a4b940cddda1f8bc61a7725a"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jun 11 16:58:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: code cleanup\n\nMainly fixing minor issues reported by sparse.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f91d3471ccf1ca9a795f46c94b1ded8dd219940c",
      "tree": "7a8d496d69ad9dd7a206183d11f5719b7161e6a7",
      "parents": [
        "39139f64e14684cf2370770deb79d929d27cfd9b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 01 15:18:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:20 2010 -0700"
      },
      "message": "ceph: fix creation of ipv6 sockets\n\nUse the address family from the peer address instead of assuming IPv4.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "39139f64e14684cf2370770deb79d929d27cfd9b",
      "tree": "7ea80cd49b3afd0816eacf7fbf191647c44d5661",
      "parents": [
        "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 09:54:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:18 2010 -0700"
      },
      "message": "ceph: fix parsing of ipv6 addresses\n\nCheck for brackets around the ipv6 address to avoid ambiguity with the port\nnumber.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47",
      "tree": "472cfd72bcc15d7a7323a58a8698bab6ec7f33f1",
      "parents": [
        "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 10:47:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 16:49:53 2010 -0700"
      },
      "message": "ceph: fix printing of ipv6 addrs\n\nThe buffer was too small.  Make it bigger, use snprintf(), put brackets\naround the ipv6 address to avoid mixing it up with the :port, and use the\never-so-handy %pI[46] formats.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed98adad3d87594c55347824e85137d1829c9e70",
      "tree": "b22414183f7eff1ac1ba606a3ebf2357f0876b4c",
      "parents": [
        "153a10939ea6e42e9c0115b0645060d0d7bb4697"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:15:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:16:23 2010 -0700"
      },
      "message": "ceph: fix message revocation\n\nA message can be on a queue (pending or sent), or out_msg (sending), or\nboth.  We were assuming that if it\u0027s not on a queue it couldn\u0027t be out_msg,\nbut that was false in the case of lossy connections like the OSD.  Fix\nceph_con_revoke() to treat these cases independently.  Also, fix the\nout_kvec_is_message check to only trigger if we are currently sending\n_this_ message.\n\nThis fixes a GPF in tcp_sendpage, triggered by OSD restarts.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae32be31341a5fecfa16c5b3eb78095207182cce",
      "tree": "1fb056abaab9a6ca5f593dba6237f6ebc0f6135c",
      "parents": [
        "4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:30:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: fix message memory leak, uninitialized variable\n\nWe need to properly initialize skip, as not all alloc_msg op instances\nset it.\n\nAlso, BUG if someone says skip but also allocates a message.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0cf5537b158caae42bcc03f0f6db10f68585b1ec",
      "tree": "a64e764eff79981bbcac289e33f8022096be0cbe",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jun 11 15:57:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: some endianity fixes\n\nFix some problems that came up with sparse.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a922d38fd10d55d5033f10df15baf966e8f5b18c",
      "tree": "306f73dedd5482f09bdac6dc9ecb5285f95b316f",
      "parents": [
        "dd1c9057366f329911180e9000e2b425f23fc287"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:41:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:42:03 2010 -0700"
      },
      "message": "ceph: close out mds, osd connections before stopping auth\n\nThe auth module (part of the mon_client) is needed to free any\nceph_authorizer(s) used by the mds and osd connections.  Flush the msgr\nworkqueue before stopping monc to ensure that the destroy_authorizer\nauth op is available when those connections are closed out.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "34d23762d988b7dcb08390ac72a353df3d60193c",
      "tree": "3a49d039527548697165da2b8789f3588b95ffed",
      "parents": [
        "23804d91f112df09b832cd091b71af4dc2831aa8"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 14:33:58 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:42 2010 -0700"
      },
      "message": "ceph: all allocation functions should get gfp_mask\n\nThis is essential, as for the rados block device we\u0027ll need\nto run in different contexts that would need flags that\nare other than GFP_NOFS.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "aba558e28ac40a598542d995c09efa8439ee3ed4",
      "tree": "22df6fe65694b3ebe5a0a56dbf96c3973f3c5812",
      "parents": [
        "ca9d93a292e327bbcddd8f8ea4197397e35097d4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 12 15:23:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:38 2010 -0700"
      },
      "message": "ceph: save peer feature bits in connection structure\n\nThese are used for adjusting behavior, such as conditionally encoding a\nnewer message format.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ca9d93a292e327bbcddd8f8ea4197397e35097d4",
      "tree": "30e81e64079228bca30b4b32b5ad4df68eca6dc2",
      "parents": [
        "1a75627896fe67d0124eab6fe2f83dd40188c40c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 12 14:48:20 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:38 2010 -0700"
      },
      "message": "ceph: resync headers with userland\n\nNotable changes include pool op defines and types, FLOCK feature bit, and\nnew CMPXATTR osd ops.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dbad185d4939ffb806f6fa753ef9f470e3b72b62",
      "tree": "0d3aaa8f0028c8b4c7826ff2a9c292ca862cd64a",
      "parents": [
        "a5ee751c15016d0deee0d651e42a3b163ea73ade"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 25 15:45:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:32 2010 -0700"
      },
      "message": "ceph: drop src address(es) from message header [new protocol feature]\n\nThe CEPH_FEATURE_NOSRCADDR protocol feature avoids putting the full source\naddress in each message header (twice).  This patch switches the client to\nthe new scheme, and _requires_ this feature on the server.  The server\nwill support both the old and new schemes.  That means an old client will\nwork with a new server, but a new client will not work with an old server.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9dd4658db1be5ca92c2ed2fd7a100d973125d9c5",
      "tree": "0f9e2b9d0b6edd9c37a5f6528a1c7c60fb10a902",
      "parents": [
        "4f48280ee1d0654390cd50ad0c41ea93309e7c91"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 28 13:51:50 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:25 2010 -0700"
      },
      "message": "ceph: close messenger race\n\nSimplify messenger locking, and close race between ceph_con_close() setting\nthe CLOSED bit and con_work() checking the bit, then taking the mutex.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6f2bc3ff4cdb03903c79e155e9e1889ce176de09",
      "tree": "73f3db68650997b714073c9f04eef40dcd2b6d96",
      "parents": [
        "bb257664f748bcfc80715f85f70f0f560caec3b4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 02 16:16:34 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:20 2010 -0700"
      },
      "message": "ceph: clean up connection reset\n\nReset out_keepalive_pending and peer_global_seq, and drop unused var.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bb257664f748bcfc80715f85f70f0f560caec3b4",
      "tree": "0f03c628328082e660c6a60f6094cde478dadec9",
      "parents": [
        "a79832f26be370ee26ea81eecdfd42d10e49d66a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 16:07:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:19 2010 -0700"
      },
      "message": "ceph: simplify ceph_msg_new\n\nWe only need to pass in front_len.  Callers can attach any other payload\npieces (middle, data) as they see fit.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a79832f26be370ee26ea81eecdfd42d10e49d66a",
      "tree": "59d55f3c928558505a420830eddfb01b3186d467",
      "parents": [
        "d52f847a841bfeba0ea87a7842732d388a1ca2e8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 16:06:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:18 2010 -0700"
      },
      "message": "ceph: make ceph_msg_new return NULL on failure; clean up, fix callers\n\nReturning ERR_PTR(-ENOMEM) is useless extra work.  Return NULL on failure\ninstead, and fix up the callers (about half of which were wrong anyway).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "31459fe4b24c1e09712eff0d82a5276f4fd0e3cf",
      "tree": "b5f7b4c1bac0eb93cef51443373909eb91c43cc4",
      "parents": [
        "f553069e5d7c6f53688ae4470173fcb1be97cbe7"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Mar 17 13:54:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:12 2010 -0700"
      },
      "message": "ceph: use __page_cache_alloc and add_to_page_cache_lru\n\nFollowing Nick Piggin patches in btrfs, pagecache pages should be\nallocated with __page_cache_alloc, so they obey pagecache memory\npolicies.\n\nAlso, using add_to_page_cache_lru instead of using a private\npagevec where applicable.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e84346b726ea90a8ed470bc81c4136a7b8710ea5",
      "tree": "99a90ef86d38a51e39ed69af318e6cfe32023879",
      "parents": [
        "f818a73674c5d197f66b636a46d7d578d7258129"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 21:20:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 21:20:38 2010 -0700"
      },
      "message": "ceph: preserve seq # on requeued messages after transient transport errors\n\nIf the tcp connection drops and we reconnect to reestablish a stateful\nsession (with the mds), we need to resend previously sent (and possibly\nreceived) messages with the _same_ seq # so that they can be dropped on\nthe other end if needed.  Only assign a new seq once after the message is\nqueued.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "45c6ceb547ad2d98215351974a4686bf8cb13e14",
      "tree": "f7d5dc6b7900faebef1a29a5e0af5ac263a64337",
      "parents": [
        "9abf82b8bc93dd904738a71ca69aa5df356d4d24"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 15:01:51 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 15:17:40 2010 -0700"
      },
      "message": "ceph: zero unused message header, footer fields\n\nWe shouldn\u0027t leak any prior memory contents to other parties.  And random\ndata, particularly in the \u0027version\u0027 field, can cause problems down the\nline.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae18756b9fa7bb93132cff06cd8575e3d46633f9",
      "tree": "e09f5c89b4611e2c53bb50118d8fa8133b58c73b",
      "parents": [
        "684be25c52a1e43638ced160be0b0b46596e7f2b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 22 07:47:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: discard incoming messages with bad seq #\n\nWe can get old message seq #\u0027s after a tcp reconnect for stateful sessions\n(i.e., the MDS).  If we get a higher seq #, that is an error, and we\nshouldn\u0027t see any bad seq #\u0027s for stateless (mon, osd) connections.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "684be25c52a1e43638ced160be0b0b46596e7f2b",
      "tree": "c6cde28f26e12f1ef33990a6d8cb10ab975dddba",
      "parents": [
        "d45d0d970f495e04a4e4f46acd74e90f4a4564f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 21 20:45:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: fix seq counting for skipped messages\n\nIncrement in_seq even when the message is skipped for some reason.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "96e35b40c0d6206f56370f937f6f4722739eb273",
      "tree": "2c387b6e3f628484a1f4bdc964e529f89d5f5821",
      "parents": [
        "f5c07a2d8acfc98e00d3be6298f979e5b3175953",
        "a6a5349d17f2a5c37079826f1a1474c3d08c6b53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 14 18:45:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 14 18:45:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: use separate class for ceph sockets\u0027 sk_lock\n  ceph: reserve one more caps space when doing readdir\n  ceph: queue_cap_snap should always queue dirty context\n  ceph: fix dentry reference leak in dcache readdir\n  ceph: decode v5 of osdmap (pool names) [protocol change]\n  ceph: fix ack counter reset on connection reset\n  ceph: fix leaked inode ref due to snap metadata writeback race\n  ceph: fix snap context reference leaks\n  ceph: allow writeback of snapped pages older than \u0027oldest\u0027 snapc\n  ceph: fix dentry rehashing on virtual .snap dir\n"
    },
    {
      "commit": "a6a5349d17f2a5c37079826f1a1474c3d08c6b53",
      "tree": "3b37dadbf297abdd65b3f63ac8e94a6137098198",
      "parents": [
        "e1e4dd0caa63e166afa46a1ccc947bebb4f66bcf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 14:07:07 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 14:07:07 2010 -0700"
      },
      "message": "ceph: use separate class for ceph sockets\u0027 sk_lock\n\nUse a separate class for ceph sockets to prevent lockdep confusion.\nBecause ceph sockets only get passed kernel pointers, there is no\ndependency from sk_lock -\u003e mmap_sem.  If we share the same class as other\nsockets, lockdep detects a circular dependency from\n\n\tmmap_sem (page fault) -\u003e fs mutex -\u003e sk_lock -\u003e mmap_sem\n\nbecause dependencies are noted from both ceph and user contexts.  Using\na separate class prevents the sk_lock(ceph) -\u003e mmap_sem dependency and\nmakes lockdep happy.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0e0d5e0c4bb0476d53a43bfc87d03a25ec4b5579",
      "tree": "66013a33ad1f46b258d55289adf12cac463d43f9",
      "parents": [
        "819ccbfa448403992ceafc05d6d7097aaa74d4c3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 02 16:07:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 02 16:07:19 2010 -0700"
      },
      "message": "ceph: fix ack counter reset on connection reset\n\nIf in_seq_acked isn\u0027t reset along with in_seq, we don\u0027t ack received\nmessages until we reach the old count, consuming gobs memory on the other\nend of the connection and introducing a large delay when those messages\nare eventually deleted.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "87b315a5b5cec5d7086494b203577602f5befc8c",
      "tree": "18e1638619a51cdf4605bad5b4270841450cf211",
      "parents": [
        "3dd72fc0e6dc49c79fa9e7cd7c654deac7ccaa29"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 22 14:51:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:47:01 2010 -0700"
      },
      "message": "ceph: avoid reopening osd connections when address hasn\u0027t changed\n\nWe get a fault callback on _every_ tcp connection fault.  Normally, we\nwant to reopen the connection when that happens.  If the address we have\nis bad, however, and connection attempts always result in a connection\nrefused or similar error, explicitly closing and reopening the msgr\nconnection just prevents the messenger\u0027s backoff logic from kicking in.\nThe result can be a console full of\n\n[ 3974.417106] ceph: osd11 10.3.14.138:6800 connection failed\n[ 3974.423295] ceph: osd11 10.3.14.138:6800 connection failed\n[ 3974.429709] ceph: osd11 10.3.14.138:6800 connection failed\n\nInstead, if we get a fault, and have outstanding requests, but the osd\naddress hasn\u0027t changed and the connection never successfully connected in\nthe first place, do nothing to the osd connection.  The messenger layer\nwill back off and retry periodically, because we never connected and thus\nthe lossy bit is not set.\n\nInstead, touch each request\u0027s r_stamp so that handle_timeout can tell the\nrequest is still alive and kicking.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3c3f2e32effd4c6acc3a9434bd7eecb0af653d89",
      "tree": "9f1b1cbee6e1d79ccc7f8160bfb41b856e9cd179",
      "parents": [
        "e4cb4cb8a03adde1aa4b874623c50b9a5b56e635"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 18 15:20:53 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:46:59 2010 -0700"
      },
      "message": "ceph: fix connection fault con_work reentrancy problem\n\nThe messenger fault was clearing the BUSY bit, for reasons unclear.  This\nmade it possible for the con-\u003eops-\u003efault function to reopen the connection,\nand requeue work in the workqueue--even though the current thread was\nalready in con_work.\n\nThis avoids a problem where the client busy loops with connection failures\non an unreachable OSD, but doesn\u0027t address the root cause of that problem.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "63733a0fc55cca74b1911769633dc5dfd1a45907",
      "tree": "b173d0f9a243dc4df463a8a73b64eabc26cec21c",
      "parents": [
        "8b218b8a4a65bf4e304ae8690cadb9100ef029c0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 15 15:47:22 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Mar 20 21:33:09 2010 -0700"
      },
      "message": "ceph: fix authenticator timeout\n\nWe were failing to reconnect to services due to an old authenticator, even\nthough we had the new ticket, because we weren\u0027t properly retrying the\nconnect handshake, because we were calling an old/incorrect helper that\nleft in_base_pos incorrect.  The result was a failure to reconnect to the\nOSD or MDS (with an authentication error) if the MDS restarted after the\nservice had been up a few hours (long enough for the original authenticator\nto be invalid).  This was only a problem if the AUTH_X authentication was\nenabled.\n\nNow that the \u0027negotiate\u0027 and \u0027connect\u0027 stages are fully separated, we\nshould use the prepare_read_connect() helper instead, and remove the\nobsolete one.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3ca02ef96e119d36bc1752baeae7dd0c59c2f325",
      "tree": "5ef2a149d0f67b3f59fd5c4b168712046f7ce7f2",
      "parents": [
        "70edb55bdfa8922c8ad40bc5a67abb6d9fee8d47"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 01 15:25:00 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 01 15:25:00 2010 -0800"
      },
      "message": "ceph: reset front len on return to msgpool; BUG on mismatched front iov\n\nReset msg front len when a message is returned to the pool: the caller\nmay have changed it.\n\nBUG if we try to send a message with a hdr.front_len that doesn\u0027t match\nthe front iov.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1679f876a641d209e7b22e43ebda0693c71003cf",
      "tree": "6cb4ba61dac343c093d7a428c48a2bb7619f0a31",
      "parents": [
        "080af17e9c6360c5a835528e8de3141a46273ed2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 26 13:55:51 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 01 15:19:51 2010 -0800"
      },
      "message": "ceph: reset bits on connection close\n\nClear LOSSYTX bit, so that if/when we reconnect, said reconnect\nwill retry on failure.\n\nClear _PENDING bits too, to avoid polluting subsequent\nconnection state.\n\nDrop unused REGISTERED bit.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e80a52d14f868059e8ec790c9fae88cdb8a1df98",
      "tree": "8353f33245509d7c3bd7fb25f5c254df6db8db9b",
      "parents": [
        "161fd65ac934608345aed35226fc889ea3b0b500"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 25 12:40:45 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 25 12:40:45 2010 -0800"
      },
      "message": "ceph: fix connection fault STANDBY check\n\nMove any out_sent messages to out_queue _before_ checking if\nout_queue is empty and going to STANDBY, or else we may drop\nsomething that was never acked.\n\nAnd clean up the code a bit (less goto).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "161fd65ac934608345aed35226fc889ea3b0b500",
      "tree": "7e216c47fde0c06b0349adabe1d1363d9b71e74b",
      "parents": [
        "88d892a37fc231ab2aa3b1c40ca9d67224616594"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 25 12:38:57 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 25 12:38:57 2010 -0800"
      },
      "message": "ceph: invalidate_authorizer without con-\u003emutex held\n\nThis fixes lock ABBA inversion, as the -\u003einvalidate_authorizer()\nop may need to take a lock (or even call back into the\nmessenger).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5b3a4db3e4009aff918abb1353eb3f4925393a7b",
      "tree": "0f55666c827c3dfe31309209b69121e431366739",
      "parents": [
        "bcd2cbd10ce31c950a40c08d7f601f8ff23537b8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 19 21:43:23 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:26:29 2010 -0800"
      },
      "message": "ceph: fix up unexpected message handling\n\nFix skipping of unexpected message types from osd, mon.\n\nClean up pr_info and debug output.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "91e45ce38946a8efa21fefbc65d023ca3c0b434f",
      "tree": "704146df9a3db46820684841cceffaabe5bc21cd",
      "parents": [
        "e2663ab60de59d20fa33da3528f6d5359f8eb003"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 12:05:09 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:07 2010 -0800"
      },
      "message": "ceph: cancel delayed work when closing connection\n\nThis ensures that if/when we reopen the connection, we can requeue work on\nthe connection immediately, without waiting for an old timer to expire.\nQueue new delayed work inside con-\u003emutex to avoid any race.\n\nThis fixes problems with clients failing to reconnect to the MDS due to\nthe client_reconnect message arriving too late (due to waiting for an old\ndelayed work timeout to expire).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e2663ab60de59d20fa33da3528f6d5359f8eb003",
      "tree": "f167aba83280b6767e1f9bdf2e67e4ac48a85c68",
      "parents": [
        "153a008bf7915ea9127341409170cb197d111282"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:03 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:03 2010 -0800"
      },
      "message": "ceph: allow connection to be reopened by fault callback\n\nFix the messenger to allow a ceph_con_open() during the fault callback.\nPreviously the work wasn\u0027t getting queued on the connection because the\nfault path avoids requeued work (normally spurious).  Loop on reopening by\nchecking for the OPENING state bit.\n\nThis fixes OSD reconnects when a TCP connection drops.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6c5d1a49e5e88ee831117f4b2375829933ad15da",
      "tree": "b96f9e7b77d7adfd763cb1089fc0e414605c361e",
      "parents": [
        "8031049147c58d9d8b6226c3ac31a9d72d053e25"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Feb 13 20:29:31 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Feb 13 20:29:31 2010 -0800"
      },
      "message": "ceph: fix msgr to keep sent messages until acked\n\nThe test was backwards from commit b3d1dbbd: keep the message if the\nconnection _isn\u0027t_ lossy.  This allows the client to continue when the\nTCP connection drops for some reason (network glitch) but both ends\nsurvive.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9bd2e6f8ba71facf1cadb7154a7e0e4d345a6aba",
      "tree": "1c1bb4d2f769eca05443b98334fe0fbdb3b977c2",
      "parents": [
        "8b6e4f2d8b21c25225b1ce8d53a2e03b92cc8522"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:21:06 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 10 15:04:47 2010 -0800"
      },
      "message": "ceph: allow renewal of auth credentials\n\nAdd infrastructure to allow the mon_client to periodically renew its auth\ncredentials.  Also add a messenger callback that will force such a renewal\nif a peer rejects our authenticator.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ac8839d7b264d0fa478fca7c4f9b6bb833540a80",
      "tree": "c5dd4fbc61c2f96845c9198a6eb9840074ebcb8c",
      "parents": [
        "361be8601d78e488b5249032cc4e779b81d7928e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 27 14:28:10 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jan 29 12:41:09 2010 -0800"
      },
      "message": "ceph: include type in ceph_entity_addr, filepath\n\nInclude a type/version in ceph_entity_addr and filepath.  Include extra\nbyte in filepath encoding as necessary.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0d59ab81c3d3adf466c3fd37d7fb6d46b05d1fd4",
      "tree": "1cdf338188bc323379ced8d5e1bdec31f500768c",
      "parents": [
        "0547a9b30a5ac8680325752b61d3ffa9d4971b6e"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Jan 13 17:03:23 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 12:58:08 2010 -0800"
      },
      "message": "ceph: keep reserved replies on the request structure\n\nThis includes treating all the data preallocation and revokation\nat the same place, not having to have a special case for\nthe reserved pages.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "0547a9b30a5ac8680325752b61d3ffa9d4971b6e",
      "tree": "0e54e227d44fab7b98c97ee4c3bed185a1238487",
      "parents": [
        "9d7f0f139edfdce1a1539b100c617fd9182b0829"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon Jan 11 14:47:13 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 12:57:46 2010 -0800"
      },
      "message": "ceph: alloc message data pages and check if tid exists\n\nNow doing it in the same callback that is also responsible for\nallocating the \u0027front\u0027 part of the message. If we get a message\nthat we haven\u0027t got a corresponding tid for, mark it for skipping.\n\nMoving the mutex unlock/lock from the osd alloc_msg callback\nto the calling function in the messenger.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "9d7f0f139edfdce1a1539b100c617fd9182b0829",
      "tree": "75b1e921e859b3ee9f110f01237a17e79c7a0074",
      "parents": [
        "2450418c47b7998ad55a73f23707b1e21c371eef"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon Jan 11 10:32:02 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 12:57:43 2010 -0800"
      },
      "message": "ceph: refactor messages data section allocation\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "2450418c47b7998ad55a73f23707b1e21c371eef",
      "tree": "1e17dd88f86c5daa1bfbca1aeea0c909391b5829",
      "parents": [
        "5b1daecd59f95eb24dc629407ed80369c9929520"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jan 08 13:58:34 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 12:57:37 2010 -0800"
      },
      "message": "ceph: allocate middle of message before stating to read\n\nBoth front and middle parts of the message are now being\nallocated at the ceph_alloc_msg().\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "103e2d3ae57d38d18aaac1b327266c1407499ac1",
      "tree": "9e46032de5680bd987e8fdd16753856e496812e6",
      "parents": [
        "4baa75ef0ed29adae03fcbbaa9aca1511a5a8cc9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 07 16:12:36 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 14 12:23:38 2010 -0800"
      },
      "message": "ceph: remove unused erank field\n\nThe ceph_entity_addr erank field is obsolete; remove it.  Get rid of\ntrivial addr comparison helpers while we\u0027re at it.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "58bb3b374b07a2a43315213f00a48a5ffd6d0915",
      "tree": "04599b1f6c5f8bf501a1070b5ab7269a9a97fece",
      "parents": [
        "04a419f908b5291ff7e8ffd7aa351fa0ac0c08af"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 12:12:31 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 12:12:31 2009 -0800"
      },
      "message": "ceph: support ceph_pagelist for message payload\n\nThe ceph_pagelist is a simple list of whole pages, strung together via\ntheir lru list_head.  It facilitates encoding to a \"buffer\" of unknown\nsize.  Allow its use in place of the ceph_msg page vector.\n\nThis will be used to fix the huge buffer preallocation woes of MDS\nreconnection.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "04a419f908b5291ff7e8ffd7aa351fa0ac0c08af",
      "tree": "2e634bdca766c27b88280ab5c1ce067f47ffe536",
      "parents": [
        "6df058c025ce343052c5516b1d8a9a7e73cddd64"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 09:30:21 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 09:30:21 2009 -0800"
      },
      "message": "ceph: add feature bits to connection handshake (protocol change)\n\nDefine supported and required feature set.  Fail connection if the server\nrequires features we do not support (TAG_FEATURES), or if the server does\nnot support features we require.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "350b1c32ea58d29e25d63fc25e92dd48f9339546",
      "tree": "4b9e8b06de8fd7e07c2292307e9a67c121f1e079",
      "parents": [
        "ec302645f4a9bd9ec757c30d185557e1c0972c1a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 22 10:45:45 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:20 2009 -0800"
      },
      "message": "ceph: control access to page vector for incoming data\n\nWhen we issue an OSD read, we specify a vector of pages that the data is to\nbe read into.  The request may be sent multiple times, to multiple OSDs, if\nthe osdmap changes, which means we can get more than one reply.\n\nOnly read data into the page vector if the reply is coming from the\nOSD we last sent the request to.  Keep track of which connection is using\nthe vector by taking a reference.  If another connection was already\nusing the vector before and a new reply comes in on the right connection,\nrevoke the pages from the other connection.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ec302645f4a9bd9ec757c30d185557e1c0972c1a",
      "tree": "b03aee886f401affba79f8473b83bd190a69570a",
      "parents": [
        "529cfcc46ffa2cbe4d07641c11e65f67fe7b66e4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 22 10:43:42 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:19 2009 -0800"
      },
      "message": "ceph: use connection mutex to protect read and write stages\n\nUse a single mutex (previously out_mutex) to protect both read and write\nactivity from concurrent ceph_con_* calls.  Drop the mutex when doing\ncallbacks to avoid nested locking (the callback may need to call something\nlike ceph_con_close).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "169e16ce816ca417286daf1db25de424a9d65a0c",
      "tree": "c99b1c6def225cddc73a67b1d355ef76ed636263",
      "parents": [
        "06edf046dd68ccbc7cf5f70f957a31702d0e7596"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Dec 16 14:22:17 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:55 2009 -0800"
      },
      "message": "ceph: remove unaccessible code\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "cf3e5c409b5d66ec66207092a3f7e3e2c42c0f3f",
      "tree": "132e0095756777f4716f59e6c05ac85b80e830fd",
      "parents": [
        "9ec7cab14e6de732d4e7c355fe67c5810c32c758"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 11 09:48:05 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:53 2009 -0800"
      },
      "message": "ceph: plug leak of incoming message during connection fault/close\n\nIf we explicitly close a connection, or there is a socket error, we need\nto drop any partially received message.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9ec7cab14e6de732d4e7c355fe67c5810c32c758",
      "tree": "2f512034bc7db2b4ca8fe47ceea06ac99a8cab40",
      "parents": [
        "93c20d98c29ccefa039c3843ccc37122caaf3d31"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 14 15:13:47 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:52 2009 -0800"
      },
      "message": "ceph: hex dump corrupt server data to KERN_DEBUG\n\nAlso, print fsid using standard format, NOT hex dump.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b3d1dbbdd5670d8a9fb01f7dfb1cac522ff6795a",
      "tree": "a76dec72d476fe9e46b02687283b9730e269d613",
      "parents": [
        "92ac41d0a4ab26fb68d3f841332e5d1f15d79123"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 14 14:58:11 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:50 2009 -0800"
      },
      "message": "ceph: don\u0027t save sent messages on lossy connections\n\nFor lossy connections we drop all state on socket errors, so there is no\nreason to keep sent ceph_msg\u0027s around.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "92ac41d0a4ab26fb68d3f841332e5d1f15d79123",
      "tree": "2dfc068efb3da472566b17d4587fe60c0b5e65cd",
      "parents": [
        "5e095e8b40b0402ad3bcadc5b8d84c38b26c30b2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 14 14:56:56 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:49 2009 -0800"
      },
      "message": "ceph: detect lossy state of connection\n\nThe server indicates whether a connection is lossy; set our LOSSYTX bit\nappropriately.  Do not set lossy bit on outgoing connections.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5e095e8b40b0402ad3bcadc5b8d84c38b26c30b2",
      "tree": "206caf0f708b6be65b41132272052f2ac8f9224c",
      "parents": [
        "c86a2930ccbd90d77c54d04b5c2bbec95b989e40"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 14 14:30:34 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:49 2009 -0800"
      },
      "message": "ceph: plug msg leak in con_fault\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c86a2930ccbd90d77c54d04b5c2bbec95b989e40",
      "tree": "604861d3945623a505c68ca96a1a637e6a7a320f",
      "parents": [
        "d4a780ce8821a37dd135f15b6150a5bfc5604f29"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 14 14:04:30 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:38 2009 -0800"
      },
      "message": "ceph: carry explicit msg reference for currently sending message\n\nCarry a ceph_msg reference for connection-\u003eout_msg.  This will allow us to\nmake out_sent optional.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c2e552e76e2c6907ca50cd9a4b747a2e2e8c615e",
      "tree": "4251e189caeb4de3f4a8763ae70600fc9d3acb51",
      "parents": [
        "415e49a9c4faf1a1480b1497da2037608e5aa2c5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 15:55:05 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 15:55:05 2009 -0800"
      },
      "message": "ceph: use kref for ceph_msg\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b6c1d5b81ea0841ae9d3ce2cda319ab986b081cf",
      "tree": "c7ddbaa1acdaec0704dfb0c1c539ddaf6e8c7506",
      "parents": [
        "dd26d857a7bf1b5b734a23180c19eac3e46db944"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 12:17:17 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 12:17:17 2009 -0800"
      },
      "message": "ceph: simplify ceph_buffer interface\n\nWe never allocate the ceph_buffer and buffer separtely, so use a single\nconstructor.\n\nDisallow put on NULL buffer; make the caller check.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "03c677e1d189ff62891d9f278c55bb798a418b81",
      "tree": "132c50a3b698c964625504ca833f08f161ffe0a5",
      "parents": [
        "0dc2570fab222affe7739b88b5ed04c511d433dc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 20 15:14:15 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 20 15:14:15 2009 -0800"
      },
      "message": "ceph: reset msgr backoff during open, not after successful handshake\n\nReset the backoff delay when we reopen the connection, so that the delays\nfor any initial connection problems are reasonable.  We were resetting only\nafter a successful handshake, which was of limited utility.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4e7a5dcd1bbab6560fbc8ada29a840e7a20ed7bc",
      "tree": "a77e9b4563022340361ca673ef2e1beebb538e2f",
      "parents": [
        "5f44f142601bf94c448e2d463f0f18fd159da164"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 18 16:19:57 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 18 16:19:57 2009 -0800"
      },
      "message": "ceph: negotiate authentication protocol; implement AUTH_NONE protocol\n\nWhen we open a monitor session, we send an initial AUTH message listing\nthe auth protocols we support, our entity name, and (possibly) a previously\nassigned global_id.  The monitor chooses a protocol and responds with an\ninitial message.\n\nInitially implement AUTH_NONE, a dummy protocol that provides no security,\nbut works within the new framework.  It generates \u0027authorizers\u0027 that are\nused when connecting to (mds, osd) services that simply state our entity\nname and global_id.\n\nThis is a wire protocol change.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "71ececdacae24be333c534869cb1b06357f0e215",
      "tree": "b07d622fb4205ce980ec5b0b6e41455b08d78b42",
      "parents": [
        "42ce56e50d948fc7c1c8c3a749ee5a21a7e134f6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 18 11:27:06 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 18 11:29:45 2009 -0800"
      },
      "message": "ceph: remove unnecessary ceph_con_shutdown\n\nWe require that ceph_con_close be called before we drop the connection,\nso this is unneeded.  Just BUG if con-\u003esock !\u003d NULL.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "eed0ef2caf928327332da54d23579debe629d5bc",
      "tree": "396319ef2e65cc775b1466f446edc535401c5cea",
      "parents": [
        "685f9a5d14194fc35db73e5e7370740ccc14b64a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 10 14:34:36 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 10 14:34:48 2009 -0800"
      },
      "message": "ceph: separate banner and connect during handshake into distinct stages\n\nWe need to make sure we only swab the address during the banner once.  So\nbreak process_banner out of process_connect, and clean up the surrounding\ncode so that these are distinct phases of the handshake.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f28bcfbe660a3246621a367020054d4f1a179cd9",
      "tree": "9dfadb9a1ab29fa42b41dc2a8098e5128b7d3b34",
      "parents": [
        "6a18be16f7513ea8a4923c161ce073987932cbdb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 11:46:35 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 16:36:12 2009 -0800"
      },
      "message": "ceph: convert port endianness\n\nThe port is informational only, but we should make it correct.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "63f2d211954b790fea0a9caeae605c7956535af6",
      "tree": "b49257aa54d9657539eeba014f9ff5f91f8495de",
      "parents": [
        "859e7b149362475672e2a996f29b8f45cbb34d82"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 03 15:17:56 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 03 15:17:56 2009 -0800"
      },
      "message": "ceph: use fixed endian encoding for ceph_entity_addr\n\nWe exchange struct ceph_entity_addr over the wire and store it on disk.\nThe sockaddr_storage.ss_family field, however, is host endianness.  So,\nfix ss_family endianness to big endian when sending/receiving over the\nwire.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "13e38c8ae771d73bf6d1f0f98e35f99c0f0d48ff",
      "tree": "cdc48759a7edc26e34b00cc0ddffc6ae58bafaf4",
      "parents": [
        "266673db423e6ab247170d6c6d72ec36e530a911"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 16:36:34 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 16:39:27 2009 -0700"
      },
      "message": "ceph: update to mon client protocol v15\n\nThe mon request headers now include session_mon information that must\nbe properly initialized.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "31b8006e1d79e127a776c9414e3e0b5f9508047e",
      "tree": "9c56f678f8dce4e25690461b078409d657731f77",
      "parents": [
        "963b61eb041e8850807d95f8d7a4c6a454c45000"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "message": "ceph: messenger library\n\nA generic message passing library is used to communicate with all\nother components in the Ceph file system.  The messenger library\nprovides ordered, reliable delivery of messages between two nodes in\nthe system.\n\nThis implementation is based on TCP.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ]
}
