)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "42ce56e50d948fc7c1c8c3a749ee5a21a7e134f6",
      "tree": "d9c65553d783b2dd0fff7489be15e314fa78203f",
      "parents": [
        "11ea8eda064aa4dc6e44a6dade1891b69ebd5255"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 18 11:22:36 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 18 11:29:42 2009 -0800"
      },
      "message": "ceph: remove bad calls to ceph_con_shutdown\n\nWe want to ceph_con_close when we\u0027re done with the connection, before\nthe ref count reaches 0.  Once it does, do not call ceph_con_shutdown,\nas that takes the con mutex and may sleep, and besides that is\nunnecessary.\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": "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": "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"
    }
  ]
}
