)]}'
{
  "log": [
    {
      "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": "080af17e9c6360c5a835528e8de3141a46273ed2",
      "tree": "d3e0104bf7ca217ddd938f367de3f4237e14b639",
      "parents": [
        "c99eb1c7263a44e63161a041a778b345b5cf0b6a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 25 16:40:07 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 26 10:02:03 2010 -0800"
      },
      "message": "ceph: remove bogus mds forward warning\n\nThe must_resend flag is always true, not false.  In any case, we can\njust ignore it anyway.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c99eb1c7263a44e63161a041a778b345b5cf0b6a",
      "tree": "7c1a303b30e8aadc0514af07748d25efd7fb2669",
      "parents": [
        "e80a52d14f868059e8ec790c9fae88cdb8a1df98"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 26 09:37:33 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 26 09:37:33 2010 -0800"
      },
      "message": "ceph: remove fragile __map_osds optimization\n\nWe used to try to avoid freeing and then reallocating the osd\nstruct.  This is a bit fragile due to potential interactions with\nother references (beyond o_requests), and may be the cause of\nthis crash:\n\n[120633.442358] BUG: unable to handle kernel NULL pointer dereference at (null)\n[120633.443292] IP: [\u003cffffffff812549b6\u003e] rb_erase+0x11d/0x277\n[120633.443292] PGD f7ff3067 PUD f7f53067 PMD 0\n[120633.443292] Oops: 0000 [#1] PREEMPT SMP\n[120633.443292] last sysfs file: /sys/kernel/uevent_seqnum\n[120633.443292] CPU 1\n[120633.443292] Modules linked in: ceph fan ac battery psmouse ehci_hcd ide_pci_generic ohci_hcd thermal processor button\n[120633.443292] Pid: 3023, comm: ceph-msgr/1 Not tainted 2.6.32-rc2 #12 H8SSL\n[120633.443292] RIP: 0010:[\u003cffffffff812549b6\u003e]  [\u003cffffffff812549b6\u003e] rb_erase+0x11d/0x277\n[120633.443292] RSP: 0018:ffff8800f7b13a50  EFLAGS: 00010246\n[120633.443292] RAX: ffff880022907819 RBX: ffff880022907818 RCX: 0000000000000000\n[120633.443292] RDX: ffff8800f7b13a80 RSI: ffff8800f587eb48 RDI: 0000000000000000\n[120633.443292] RBP: ffff8800f7b13a60 R08: 0000000000000000 R09: 0000000000000004\n[120633.443292] R10: 0000000000000000 R11: ffff8800c4441000 R12: ffff8800f587eb48\n[120633.443292] R13: ffff8800f58eaa00 R14: ffff8800f413c000 R15: 0000000000000001\n[120633.443292] FS:  00007fbef6e226e0(0000) GS:ffff880009200000(0000) knlGS:0000000000000000\n[120633.443292] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b\n[120633.443292] CR2: 0000000000000000 CR3: 00000000f7c53000 CR4: 00000000000006e0\n[120633.443292] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[120633.443292] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[120633.443292] Process ceph-msgr/1 (pid: 3023, threadinfo ffff8800f7b12000, task ffff8800f5858b40)\n[120633.443292] Stack:\n[120633.443292]  ffff8800f413c000 ffff8800f587e9c0 ffff8800f7b13a80 ffffffffa0098a86\n[120633.443292] \u003c0\u003e 00000000000006f1 0000000000000000 ffff8800f7b13af0 ffffffffa009959b\n[120633.443292] \u003c0\u003e ffff8800f413c000 ffff880022a68400 ffff880022a68400 ffff8800f587e9c0\n[120633.443292] Call Trace:\n[120633.443292]  [\u003cffffffffa0098a86\u003e] __remove_osd+0x4d/0xbc [ceph]\n[120633.443292]  [\u003cffffffffa009959b\u003e] __map_osds+0x199/0x4fa [ceph]\n[120633.443292]  [\u003cffffffffa00999f4\u003e] ? __send_request+0xf8/0x186 [ceph]\n[120633.443292]  [\u003cffffffffa0099beb\u003e] kick_requests+0x169/0x3cb [ceph]\n[120633.443292]  [\u003cffffffffa009a8c1\u003e] ceph_osdc_handle_map+0x370/0x522 [ceph]\n\nSince we\u0027re probably screwed anyway if a small kmalloc is\nfailing, don\u0027t bother with trying to be clever here.\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": "88d892a37fc231ab2aa3b1c40ca9d67224616594",
      "tree": "48ce9b4645716848a20852f552efa8cad87eabe2",
      "parents": [
        "a1ea787c7b6ec036d169d84e08cca7b6e399ba70"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Feb 23 18:16:23 2010 +0000"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:26:36 2010 -0800"
      },
      "message": "ceph: don\u0027t clobber write return value when using O_SYNC\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a1ea787c7b6ec036d169d84e08cca7b6e399ba70",
      "tree": "99eeb4be56e747593d6da388a8b92530f0188768",
      "parents": [
        "2600d2dd5085ab6fb09540226138a60055abf335"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:02:44 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:26:36 2010 -0800"
      },
      "message": "ceph: fix client_request_forward decoding\n\nThe tid is in the message header, not body.  Broken since 6df058c0.\n\nNo need to look at next mds session; just mark the request and be done.\n(The old error path was broken too, but now it\u0027s gone.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2600d2dd5085ab6fb09540226138a60055abf335",
      "tree": "5aeb8a110eb7a41dab2d16b3a5ba8d67ad068a82",
      "parents": [
        "a6369741c48815fedfce7072b7a9cd98b5bafd56"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 22 15:12:16 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:26:35 2010 -0800"
      },
      "message": "ceph: drop messages on unregistered mds sessions; cleanup\n\nVerify the mds session is currently registered before handling\nincoming messages.  Clean up message handlers to pull mds out\nof session-\u003es_mds instead of less trustworthy src field.\n\nClean up con_{get,put} debug output.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a6369741c48815fedfce7072b7a9cd98b5bafd56",
      "tree": "dd9ce7da7a6c5556d6c7731423dff0824aad9545",
      "parents": [
        "4ce1e9adabbad8f2c45ceeeb6de56cc368484297"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 22 13:59:00 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:26:35 2010 -0800"
      },
      "message": "ceph: fix comments, locking in destroy_inode\n\nThe destroy_inode path needs no inode locks since there are no\ninode references.  Update __ceph_remove_cap comment to reflect\nthat it is called without cap-\u003esession-\u003es_mutex in this case.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4ce1e9adabbad8f2c45ceeeb6de56cc368484297",
      "tree": "960188ec419b55ecaa3288b3d54aa5e2fe481b02",
      "parents": [
        "5b3a4db3e4009aff918abb1353eb3f4925393a7b"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Mon Feb 22 17:17:44 2010 +0300"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 23 14:26:34 2010 -0800"
      },
      "message": "ceph: move dereference after NULL test\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\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": "bcd2cbd10ce31c950a40c08d7f601f8ff23537b8",
      "tree": "1f419714feceb6072828cc8977610cfcadec1705",
      "parents": [
        "c9af9fb68e01eb2c2165e1bc45cfeeed510c64e6"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Feb 19 00:12:21 2010 +0000"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 19 14:41:10 2010 -0800"
      },
      "message": "ceph: cleanup redundant code in handle_cap_grant\n\nThere is no state in local vars that requires us to loop after temporarily\ndropping i_lock.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c9af9fb68e01eb2c2165e1bc45cfeeed510c64e6",
      "tree": "9af8caecd66c6557c5ada6a38d4b2ff9be180d35",
      "parents": [
        "e63dc5c780ba32d6d8b3662eecce2b8d96489b41"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Feb 19 00:10:11 2010 +0000"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 19 14:40:51 2010 -0800"
      },
      "message": "ceph: don\u0027t truncate dirty pages in invalidate work thread\n\nInstead of truncating the whole range of pages, we skip those\npages that are dirty or in the middle of writeback. Those pages\nwill be cleared later when the writeback completes.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e63dc5c780ba32d6d8b3662eecce2b8d96489b41",
      "tree": "ed6ee7f557c479934b6d8a70b7ccba86b13ae670",
      "parents": [
        "5ecad6fd7bfd30b3eaea51345f546b81de7a6473"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Feb 19 00:07:01 2010 +0000"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 19 14:34:18 2010 -0800"
      },
      "message": "ceph: remove page upon writeback completion if lost cache cap\n\nThis page should have been removed earlier when the cache cap was\nrevoked, but a writeback was in flight, so it was skipped. We truncate\nit here just as the writeback finishes, while it\u0027s still locked.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5ecad6fd7bfd30b3eaea51345f546b81de7a6473",
      "tree": "98447fd009cc03e5125ffc51b4caac07123e0f70",
      "parents": [
        "2c27c9a57c93a0757b9b4b0e7dc1abeaf1db1ce2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 10:43:37 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Feb 19 14:33:18 2010 -0800"
      },
      "message": "ceph: fix check for invalidate_mapping_pages success\n\nWe need to know whether there was any page left behind, and not the\nreturn value (the total number of pages invalidated).  Look at the mapping\nto see if we were successful or not.\n\nMove it all into a helper to simplify the two callers.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2c27c9a57c93a0757b9b4b0e7dc1abeaf1db1ce2",
      "tree": "ffd4b1fd667938e2707d221bcc9de93421571dc0",
      "parents": [
        "a17d6473cc9eb64a5b41c568310aa73824ebaa64"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 15:45:51 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 15:45:51 2010 -0800"
      },
      "message": "ceph: fix typo in ceph_queue_writeback debug output\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a17d6473cc9eb64a5b41c568310aa73824ebaa64",
      "tree": "415e0ade75a7221c394ed56827fcdc80d598dfcd",
      "parents": [
        "4fc51be8fa7043ff9a1e34fef0e99214373332ac"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 13:56:07 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 13:56:07 2010 -0800"
      },
      "message": "ceph: v0.19 release\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4fc51be8fa7043ff9a1e34fef0e99214373332ac",
      "tree": "beba3bc83b5a07a16bb63c6e80713cb2b42bf4fb",
      "parents": [
        "9794b146fa7b93f8ab74fb62d67fdefad760769f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 15:55:03 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 10:02:49 2010 -0800"
      },
      "message": "ceph: use rbtree for pg pools; decode new osdmap format\n\nSince we can now create and destroy pg pools, the pool ids will be sparse,\nand an array no longer makes sense for looking up by pool id.  Use an\nrbtree instead.\n\nThe OSDMap encoding also no longer has a max pool count (previously used to\nallocate the array).  There is a new pool_max, that is the largest pool id\nwe\u0027ve ever used, although we don\u0027t actually need it in the client.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9794b146fa7b93f8ab74fb62d67fdefad760769f",
      "tree": "9478fc2cad415db3baf69e8b975fc33b5917bdf6",
      "parents": [
        "7c1332b8cb5b27656cf6ab1f5fe808a8eb8bb2c0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 15:53:32 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 10:02:48 2010 -0800"
      },
      "message": "ceph: fix memory leak when destroying osdmap with pg_temp mappings\n\nAlso move _lookup_pg_mapping into a helper.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7c1332b8cb5b27656cf6ab1f5fe808a8eb8bb2c0",
      "tree": "f990ab6b339a88896f41a6b3541d0676684c935d",
      "parents": [
        "85ccce43a3fc15a40ded6ae1603e3f68a17f4d24"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 11:39:45 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 10:02:47 2010 -0800"
      },
      "message": "ceph: fix iterate_caps removal race\n\nWe need to be able to iterate over all caps on a session with a\npossibly slow callback on each cap.  To allow this, we used to\nprevent cap reordering while we were iterating.  However, we were\nnot safe from races with removal: removing the \u0027next\u0027 cap would\nmake the next pointer from list_for_each_entry_safe be invalid,\nand cause a lock up or similar badness.\n\nInstead, we keep an iterator pointer in the session pointing to\nthe current cap.  As before, we avoid reordering.  For removal,\nif the cap isn\u0027t the current cap we are iterating over, we are\nfine.  If it is, we clear cap-\u003eci (to mark the cap as pending\nremoval) but leave it in the session list.  In iterate_caps, we\ncan safely finish removal and get the next cap pointer.\n\nWhile we\u0027re at it, clean up put_cap to not take a cap reservation\ncontext, as it was never used.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "85ccce43a3fc15a40ded6ae1603e3f68a17f4d24",
      "tree": "1e15fb7dc7df43da4a3feacff671c8169e96291d",
      "parents": [
        "5ce6e9dbe6805ab8ee67e21936d17f431adc63c6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 10:02:43 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 17 10:02:43 2010 -0800"
      },
      "message": "ceph: clean up readdir caps reservation\n\nUse a global counter for the minimum number of allocated caps instead of\nhard coding a check against readdir_max.  This takes into account multiple\nclient instances, and avoids examining the superblock mount options when a\ncap is dropped.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5ce6e9dbe6805ab8ee67e21936d17f431adc63c6",
      "tree": "9aca0fdc38afc5755d59eb3ba84c86f26df44012",
      "parents": [
        "85ff03f6bfef7d5b59ab3aefd4773f497ffad8a4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 16:22:28 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:11 2010 -0800"
      },
      "message": "ceph: fix authentication races, auth_none oops\n\nCall __validate_auth() under monc-\u003emutex, and use helper for\ninitial hello so that the pending_auth flag is set.  This fixes\npossible races in which we have an authentication request (hello\nor otherwise) pending and send another one.  In particular, with\nauth_none, we _never_ want to call ceph_build_auth() from\n__validate_auth(), since the -\u003ebuild_request() method is NULL.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "85ff03f6bfef7d5b59ab3aefd4773f497ffad8a4",
      "tree": "ef0a700d68f87b84ebb235c2ed7aae69c7414a8d",
      "parents": [
        "a105f00cf17d711e876b3dc67e15f9a89b7de5a3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 14:47:28 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:10 2010 -0800"
      },
      "message": "ceph: use rbtree for mon statfs requests\n\nAn rbtree is lighter weight, particularly given we will generally have\nvery few in-flight statfs requests.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a105f00cf17d711e876b3dc67e15f9a89b7de5a3",
      "tree": "59c4b280aa92e9910670ee7fd274f21bc3659a04",
      "parents": [
        "44ca18f2682eb1cfbed153849adedb79e3e19790"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 14:37:55 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:09 2010 -0800"
      },
      "message": "ceph: use rbtree for snap_realms\n\nSwitch from radix tree to rbtree for snap realms.  This is much more\nappropriate given that realm keys are few and far between.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "44ca18f2682eb1cfbed153849adedb79e3e19790",
      "tree": "063dd8382179e65717ec10dc1ffc135950050abd",
      "parents": [
        "91e45ce38946a8efa21fefbc65d023ca3c0b434f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 12:08:46 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 16 22:01:08 2010 -0800"
      },
      "message": "ceph: use rbtree for mds requests\n\nThe rbtree is a more appropriate data structure than a radix_tree.  It\navoids extra memory usage and simplifies the code.\n\nIt also fixes a bug where the debugfs \u0027mdsc\u0027 file wasn\u0027t including the\nmost recent mds request.\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": "153a008bf7915ea9127341409170cb197d111282",
      "tree": "da9852014c4a71f8578437698200b56218874110",
      "parents": [
        "6c5d1a49e5e88ee831117f4b2375829933ad15da"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 12:11:51 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 15 12:11:51 2010 -0800"
      },
      "message": "ceph: reset osd connections after fault\n\nA single osd connection fault (e.g. tcp disconnect) wasn\u0027t\nreopening the connection, which causes all current and future\nrequests for that osd to hang.\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": "8031049147c58d9d8b6226c3ac31a9d72d053e25",
      "tree": "d89aec0fc9dcae6ea20fe0665b7700911c2dbf61",
      "parents": [
        "0840d8af3e6e40bcd5f2366698eb2755f88acfea"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 09 16:43:11 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:55 2010 -0800"
      },
      "message": "ceph: remove bogus invalidate_mapping_pages\n\nWe were invalidating mapping pages when dropping FILE_CACHE in\n__send_cap().  But ceph_check_caps attempts to invalidate already, and\nalso checks for success, so we should never get to this point.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0840d8af3e6e40bcd5f2366698eb2755f88acfea",
      "tree": "9eed5acb6d23bdefcc4e4a832347199cd3b181d2",
      "parents": [
        "3c6f6b79a64db7f1c7abf09d693db3b0066784fb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 09 15:44:16 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:54 2010 -0800"
      },
      "message": "ceph: invalidate pages even if truncate is pending\n\nThere is no reason not to invalidate pages when a truncate is pending.\nBoth throw out page cache pages.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3c6f6b79a64db7f1c7abf09d693db3b0066784fb",
      "tree": "e17b4cd848212b0556180331280044dd1526b742",
      "parents": [
        "6a026589ba333185c466c906376fe022a27a53f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 09 15:24:44 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:54 2010 -0800"
      },
      "message": "ceph: cleanup async writeback, truncation, invalidate helpers\n\nGrab inode ref in helper.  Make work functions static, with consistent\nnaming.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6a026589ba333185c466c906376fe022a27a53f9",
      "tree": "7c536163e2192928978b79d5a6bbd79dd5993777",
      "parents": [
        "68c283236a1e0772e1a469dd2ffc17afc300b07b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 09 14:04:02 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:53 2010 -0800"
      },
      "message": "ceph: fix sync read eof check deadlock\n\nIf a sync read gets a short result from the OSD, it may need to do a\ngetattr to see if it is short due to reaching end-of-file.  The getattr\nwas being done while holding a reference to FILE_RD, which can lead to\na deadlock if the MDS is revoking that capability bit and can\u0027t process\nthe getattr until it does.\n\nWe fix this by setting a flag if EOF size validation is needed, and doing\nthe getattr in ceph_aio_read, after the RD cap ref is dropped.  If the\nread needs to be continued, we loop and continue traversing the file.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "68c283236a1e0772e1a469dd2ffc17afc300b07b",
      "tree": "6bdca5168713dab721f5458487e3c9d218d24726",
      "parents": [
        "cbd03635913a86afb7c2cfc0058932956b05b51e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 09 13:41:47 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:52 2010 -0800"
      },
      "message": "ceph: do not retain caps that are being revoked\n\nNever retain caps in __send_cap() that are being revoked.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cbd03635913a86afb7c2cfc0058932956b05b51e",
      "tree": "5938439c41509d72af379fcfc770e37fb5527847",
      "parents": [
        "29065a513aa4c7e4b46b77cbcd25f814a4ca0bfe"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 09 13:41:18 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:52 2010 -0800"
      },
      "message": "ceph: cap revocation fixes\n\nTry to invalidate pages in ceph_check_caps() if FILE_CACHE is being\nrevoked.  If we fail, queue an immediate async invalidate if FILE_CACHE\nis being revoked.  (If it\u0027s not being revoked, we just queue the caps\nfor later evaluation later, as per the old behavior.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "29065a513aa4c7e4b46b77cbcd25f814a4ca0bfe",
      "tree": "74607baf067fe47a5eeeeb07257186fdd15de989",
      "parents": [
        "3d497d858ae6e5f23a28783030aecc69074e102d"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Feb 09 11:14:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:51 2010 -0800"
      },
      "message": "ceph: sync read/write considers page cache\n\nIn the cases where we either do a sync read or a write, we\nneed to make sure that everything in the page cache is flushed.\nIn the case of a sync write we invalidate the relevant pages,\nso that subsequent read/write reflects the new data written.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d497d858ae6e5f23a28783030aecc69074e102d",
      "tree": "43c69325be88a7a1ea3842d5f64a33d613fb710c",
      "parents": [
        "4af6b2257ee0eb8f4bf3b1dc8acb643c0e8a887f"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Feb 09 11:08:40 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:51 2010 -0800"
      },
      "message": "ceph: fix truncation when not holding caps\n\nA truncation should occur when either we have the\nspecified caps for the file, or (in cases where we are\nnot the only ones referencing the file) when it is mapped\nor when it is opened. The latter two cases were not\nhandled.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4af6b2257ee0eb8f4bf3b1dc8acb643c0e8a887f",
      "tree": "6193e59ebd7806d286e16e091a5acf98bceae424",
      "parents": [
        "972f0d3ab1a15cb5d790dd8c53903066084b28f2"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Feb 09 11:02:51 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:50 2010 -0800"
      },
      "message": "ceph: refactor ceph_write_begin, fix ceph_page_mkwrite\n\nOriginally ceph_page_mkwrite called ceph_write_begin, hoping that\nthe returned locked page would be the page that it was requested\nto mkwrite. Factored out relevant part of ceph_page_mkwrite and\nwe lock the right page anyway.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "972f0d3ab1a15cb5d790dd8c53903066084b28f2",
      "tree": "42d47841a5bee10cea81c8e1eb44b6bc4f1f942e",
      "parents": [
        "02f90c61096ec3ad691e808a4aa7ca5a06e550ec"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Thu Feb 04 13:41:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:49 2010 -0800"
      },
      "message": "ceph: fix short synchronous reads\n\nZeroing of holes was not done correctly: page_off was miscalculated and\nzeroing the tail didn\u0027t not adjust the \u0027read\u0027 value to include the zeroed\nportion.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "02f90c61096ec3ad691e808a4aa7ca5a06e550ec",
      "tree": "5061c9797a1c27608cd9e06b4b759c621d1d4b61",
      "parents": [
        "f5a2041bd96c9f05ff10172b9c814c14f247084e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 04 16:18:10 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:49 2010 -0800"
      },
      "message": "ceph: add uid field to ceph_pg_pool\n\nAlso verify encoding version as we go.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f5a2041bd96c9f05ff10172b9c814c14f247084e",
      "tree": "3c9c47169fa5ad2ec52d278f10d9d2de2237accf",
      "parents": [
        "b056c8769d1da6a6a80ce780a4b8957b70434a41"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Feb 03 11:00:26 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:48 2010 -0800"
      },
      "message": "ceph: put unused osd connections on lru\n\nInstead of removing osd connection immediately when the\nrequests list is empty, put the osd connection on an lru.\nOnly if that osd has not been used for more than a specified\ntime, will it be removed.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b056c8769d1da6a6a80ce780a4b8957b70434a41",
      "tree": "2fa8eca7f2e2419ebbf68303fd280a0b2e1b99d8",
      "parents": [
        "ec0994e48ea2aebf62ff08376227f3a9ccf46262"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Feb 03 10:47:48 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:48 2010 -0800"
      },
      "message": "ceph: remove unused variable\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ec0994e48ea2aebf62ff08376227f3a9ccf46262",
      "tree": "fdfd595b36619507d25a6b06e14b86db0ee3849a",
      "parents": [
        "07c8739c521cb029d0f3549556aae2d304513978"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:25:35 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 11 11:48:45 2010 -0800"
      },
      "message": "ceph: add support for auth_x authentication protocol\n\nThe auth_x protocol implements support for a kerberos-like mutual\nauthentication infrastructure used by Ceph.  We do not simply use vanilla\nkerberos because of scalability and performance issues when dealing with\na large cluster of nodes providing a single logical service.\n\nAuth_x provides mutual authentication of client and server and protects\nagainst replay and man in the middle attacks.  It does not encrypt\nthe full session over the wire, however, so data payload may still be\nsnooped.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "07c8739c521cb029d0f3549556aae2d304513978",
      "tree": "096f9775bfa1ca3092e9a5e223b0df4d5bcf0bc0",
      "parents": [
        "9bd2e6f8ba71facf1cadb7154a7e0e4d345a6aba"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Feb 04 09:42:20 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 10 15:04:48 2010 -0800"
      },
      "message": "ceph: add struct version to auth encoding\n\nInlucde struct version in encoding. This will streamline future protocol\nchanges.\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": "8b6e4f2d8b21c25225b1ce8d53a2e03b92cc8522",
      "tree": "a89355726cc37f064629232360574531eec8dc4a",
      "parents": [
        "c7e337d6490d6f2f5e66ddf1b04d00b0dbd10108"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:07:07 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 10 15:04:46 2010 -0800"
      },
      "message": "ceph: aes crypto and base64 encode/decode helpers\n\nHelpers to encrypt/decrypt AES and base64.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c7e337d6490d6f2f5e66ddf1b04d00b0dbd10108",
      "tree": "3a2e12219e38e807c71d8b2c30b89e7efbe82bdd",
      "parents": [
        "79788c698b290426320e60374ed1324e4b5c69eb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:11:19 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Feb 10 15:04:39 2010 -0800"
      },
      "message": "ceph: buffer decoding helpers\n\nHelper for decoding into a ceph_buffer, and other misc decoding helpers\nwe will need.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "79788c698b290426320e60374ed1324e4b5c69eb",
      "tree": "6c96d36c99c043c04c1d4c8686639f67f71232ba",
      "parents": [
        "0c948992a00d478c17042f4790b7d6b35299cf94"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:34:04 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:34:04 2010 -0800"
      },
      "message": "ceph: release all pages after successful osd write response\n\nWe release all the pages, even if the osd response was\ndifferent than the number of pages written. This could only\nhappen due to truncation that arrives the osd in\ndifferent order, for which we want the pages released anyway.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0c948992a00d478c17042f4790b7d6b35299cf94",
      "tree": "8a6bdfabcaf9f524fcfa6ce2ec10ebb73df0a9aa",
      "parents": [
        "0f26c4b21b684825a6dd41f2bc04d48ff62d72f8"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon Feb 01 16:10:45 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Feb 02 16:29:50 2010 -0800"
      },
      "message": "ceph: always send truncation info with read and write osd ops\n\nThis fixes a bug where the read/write ops arrive the osd after\na following truncation request.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0f26c4b21b684825a6dd41f2bc04d48ff62d72f8",
      "tree": "6788224697ce1998c952bce1ff0136831af38648",
      "parents": [
        "ac8839d7b264d0fa478fca7c4f9b6bb833540a80"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jan 29 11:01:11 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jan 29 12:42:39 2010 -0800"
      },
      "message": "ceph: remove unreachable code\n\nWe never truncate to a smaller size without contacting the MDS.\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": "361be8601d78e488b5249032cc4e779b81d7928e",
      "tree": "9a443ca3913854104e88620db70fbdf6fc7f1d3a",
      "parents": [
        "0d59ab81c3d3adf466c3fd37d7fb6d46b05d1fd4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 16:03:02 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 16:03:02 2010 -0800"
      },
      "message": "ceph: precede encoded ceph_pg_pool struct with version\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": "5b1daecd59f95eb24dc629407ed80369c9929520",
      "tree": "19b5d4e11427350f48947df8dca453069ed0a0d5",
      "parents": [
        "3ea25f9441fc0951ada649105f2c57a59536b539"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 11:33:08 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 11:49:51 2010 -0800"
      },
      "message": "ceph: properly handle aborted mds requests\n\nPreviously, if the MDS request was interrupted, we would unregister the\nrequest and ignore any reply.  This could cause the caps or other cache\nstate to become out of sync.  (For instance, aborting dbench and doing\nrm -r on clients would complain about a non-empty directory because the\nclient didn\u0027t realize it\u0027s aborted file create request completed.)\n\nEven we don\u0027t unregister, we still can\u0027t process the reply normally because\nwe are no longer holding the caller\u0027s locks (like the dir i_mutex).\n\nSo, mark aborted operations with r_aborted, and in the reply handler, be\nsure to process all the caps.  Do not process the namespace changes,\nthough, since we no longer will hold the dir i_mutex.  The dentry lease\nstate can also be ignored as it\u0027s more forgiving.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3ea25f9441fc0951ada649105f2c57a59536b539",
      "tree": "0425a1f40899b4d7566fc50c032c9afc0408c240",
      "parents": [
        "ec7384ec23dc5a9ea8733e90438e16b6066bfe1b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 11:18:17 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 11:49:50 2010 -0800"
      },
      "message": "ceph: mark MDS CREATE as a write op\n\nCEPH_MDS_OP_CREATE was not correctly marked as a write operation.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ec7384ec23dc5a9ea8733e90438e16b6066bfe1b",
      "tree": "87fb33ca9a3a7fa29f22694e0946d4af344b252e",
      "parents": [
        "7740a42f816790583bd8a9079337772d511af3a3"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Jan 20 15:16:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jan 25 11:33:35 2010 -0800"
      },
      "message": "ceph: remove duplicate variable initialization\n\nThe variable client is initialized twice to the same (side effect-free)\nexpression.  Drop one initialization.\n\nA simplified version of the semantic match that finds this problem is:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@forall@\nidexpression *x;\nidentifier f!\u003dERR_PTR;\n@@\n\nx \u003d f(...)\n... when !\u003d x\n(\nx \u003d f(...,\u003c+...x...+\u003e,...)\n|\n* x \u003d f(...)\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7740a42f816790583bd8a9079337772d511af3a3",
      "tree": "fffc12ba1ab1e60da8c13dba7fef5d0024278ca5",
      "parents": [
        "103e2d3ae57d38d18aaac1b327266c1407499ac1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jan 08 15:58:25 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 14 12:23:39 2010 -0800"
      },
      "message": "ceph: display pgid in debugfs osd request dump\n\nSigned-off-by: Sage Weil \u003csage@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": "4baa75ef0ed29adae03fcbbaa9aca1511a5a8cc9",
      "tree": "f3ba17caa2a8738eff064b611c1d7bb0610f3037",
      "parents": [
        "6a4ef48103a78a46b80e07fcd8ac4edda0c7128f"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Thu Jan 07 15:36:32 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jan 14 12:23:14 2010 -0800"
      },
      "message": "ceph: change dentry offset and position after splice_dentry\n\nThis fixes a bug, where we had the parent list have dentries with\noffsets that are not monotonically increasing, which caused the ceph\ndcache_readdir to skip entries.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6a4ef48103a78a46b80e07fcd8ac4edda0c7128f",
      "tree": "b9cf0fcb4e83400b10e3e3940f274dd9724a2499",
      "parents": [
        "93cea5bebf91319095db866163a7e35c3e77d8f2"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Thu Dec 31 12:04:58 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 06 16:05:20 2010 -0800"
      },
      "message": "ceph: fix copy_user_to_page_vector()\n\nThe function was broken in the case where there was more than one page\ninvolved, broke the ceph sync_write case.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "93cea5bebf91319095db866163a7e35c3e77d8f2",
      "tree": "31fbe2ddbcf2d510535b1eb5dd227bb13ce0d5d0",
      "parents": [
        "58bb3b374b07a2a43315213f00a48a5ffd6d0915"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 12:21:51 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 12:21:51 2009 -0800"
      },
      "message": "ceph: use ceph_pagelist for mds reconnect message; change encoding (protocol change)\n\nUse the ceph_pagelist to encode the MDS reconnect message.  We change the\nmessage encoding (protocol change!) at the same time to make our life\neasier (we don\u0027t know how many snaprealms we have when we start encoding).\n\nAn empty message implies the session is closed/does not exist.\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": "6df058c025ce343052c5516b1d8a9a7e73cddd64",
      "tree": "58230bd258f71c2c3adf56a55d11ed39f404d12a",
      "parents": [
        "0cf90ab5b075821940873e73cdbfeb8edc3dabe8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 22 11:24:33 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:22 2009 -0800"
      },
      "message": "ceph: include transaction id in ceph_msg_header (protocol change)\n\nMany (most?) message types include a transaction id.  By including it in\nthe fixed size header, we always have it available even when we are unable\nto allocate memory for the (larger, variable sized) message body.  This\nwill allow us to error out the appropriate request instead of (silently)\ndropping the reply.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0cf90ab5b075821940873e73cdbfeb8edc3dabe8",
      "tree": "5388f009481026c6926a555fe0e2d378e346776e",
      "parents": [
        "350b1c32ea58d29e25d63fc25e92dd48f9339546"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 22 10:45:18 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:21 2009 -0800"
      },
      "message": "ceph: more informative msgpool errors\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": "529cfcc46ffa2cbe4d07641c11e65f67fe7b66e4",
      "tree": "4666fb5c64a1e2d0ebcc8dff5825a882aff86796",
      "parents": [
        "e0e3271074e1ebd0b80a912a457ce03c971bcd66"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 22 10:29:39 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:19 2009 -0800"
      },
      "message": "ceph: unregister canceled/timed out osd requests\n\nCanceled or timed out osd requests were getting left in the request list\nand never deallocated (until umount).  Unregister if they are canceled\n(control-c) or time out.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e0e3271074e1ebd0b80a912a457ce03c971bcd66",
      "tree": "1af28d179afc54010d78c675ecc73ab4b514ad0f",
      "parents": [
        "5dacf09121ffb2e5fc7d15b78cae0b77042a1935"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 21:04:26 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:18 2009 -0800"
      },
      "message": "ceph: only unregister registered bdi\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5dacf09121ffb2e5fc7d15b78cae0b77042a1935",
      "tree": "8a4ec2fde459f93936a91644d024673d37347408",
      "parents": [
        "7067f797b8409f1e10ec95ac2c1e17a200173d13"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 20:40:34 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 23 08:17:14 2009 -0800"
      },
      "message": "ceph: do not touch_caps while iterating over caps list\n\nAvoid confusing iterate_session_caps(), flag the session while we are\niterating so that __touch_cap does not rearrange items on the list.\n\nAll other modifiers of session-\u003es_caps do so under the protection of\ns_mutex.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7067f797b8409f1e10ec95ac2c1e17a200173d13",
      "tree": "29bac1d0c8a2415b5a960432bf7125b833300977",
      "parents": [
        "30dc6381bbac213987be6fe0b0fb89868ff1f2c0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:02:37 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:40:00 2009 -0800"
      },
      "message": "ceph: fix incremental osdmap pg_temp decoding bug\n\nAn incremental pg_temp wasn\u0027t being decoded properly (wrong bound on\nfor loop).\n\nAlso remove unused local variable, while we\u0027re at it.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "30dc6381bbac213987be6fe0b0fb89868ff1f2c0",
      "tree": "f647d1826a3f8cf07a510cad49c9f400359a9ae4",
      "parents": [
        "5de7bf8afa87f75af5ef3d6f9fce3e171cac834c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 14:49:37 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:59 2009 -0800"
      },
      "message": "ceph: fix error paths for corrupt osdmap messages\n\nBoth osdmap_decode() and osdmap_apply_incremental() should never return\nNULL.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5de7bf8afa87f75af5ef3d6f9fce3e171cac834c",
      "tree": "42d3cdf8c6a78ee9057adca516dea26c890be24e",
      "parents": [
        "c4a29f26d50bea65809ca670992108a33aa2efa6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 11:48:44 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:58 2009 -0800"
      },
      "message": "ceph: do not drop lease during revalidate\n\nWe need to hold session s_mutex for __ceph_mdsc_drop_dentry_lease(), which\nwe don\u0027t, so skip it.  It was purely an optimization.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c4a29f26d50bea65809ca670992108a33aa2efa6",
      "tree": "20b6c85cd3d92792e855d990aca3504dbe20d294",
      "parents": [
        "2baba25019ec564cd247af74013873d69a0b8190"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 11:42:18 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:57 2009 -0800"
      },
      "message": "ceph: ensure rename target dentry fails revalidation\n\nThis works around a bug in vfs_rename_dir() that rehashes the target\ndentry.  Ensure such dentries always fail revalidation by timing out the\ndentry lease and kicking it out of the current directory lease gen.\n\nThis can be reverted when the vfs bug is fixed.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2baba25019ec564cd247af74013873d69a0b8190",
      "tree": "c0995b8087cff771dd51aaf1194fd238f4490f01",
      "parents": [
        "dbd646a851713bec5bfff40ecf624b2e78518fe5"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Dec 18 13:51:57 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:56 2009 -0800"
      },
      "message": "ceph: writeback congestion control\n\nSet bdi congestion bit when amount of write data in flight exceeds adjustable\nthreshold.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dbd646a851713bec5bfff40ecf624b2e78518fe5",
      "tree": "e5c4e141b7ec03ed5d2766a6909b1f48a5ec6519",
      "parents": [
        "169e16ce816ca417286daf1db25de424a9d65a0c"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Dec 16 14:51:06 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:56 2009 -0800"
      },
      "message": "ceph: writepage grabs and releases inode\n\nFixes a deadlock that is triggered due to kswapd,\nwhile the page was locked and the iput couldn\u0027t tear\ndown the address space.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.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": "06edf046dd68ccbc7cf5f70f957a31702d0e7596",
      "tree": "5f9dce5a9501ecced0d6b61ddf60f27acd779b3f",
      "parents": [
        "e2885f06ce31d82b556be021acfa2eba160f29cc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 15 14:44:32 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:54 2009 -0800"
      },
      "message": "ceph: include link to bdi in debugfs\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e2885f06ce31d82b556be021acfa2eba160f29cc",
      "tree": "694941f659c67f4d4832f08bcb9f7add21a4926f",
      "parents": [
        "cf3e5c409b5d66ec66207092a3f7e3e2c42c0f3f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 15 10:27:48 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:53 2009 -0800"
      },
      "message": "ceph: make mds ops interruptible\n\nSigned-off-by: Sage Weil \u003csage@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": "93c20d98c29ccefa039c3843ccc37122caaf3d31",
      "tree": "ed434cc0f9390c2821051979ae1237dd25f97217",
      "parents": [
        "b3d1dbbdd5670d8a9fb01f7dfb1cac522ff6795a"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Dec 15 09:50:36 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 21 16:39:51 2009 -0800"
      },
      "message": "ceph: fix msgpool reservation leak\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.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": "d4a780ce8821a37dd135f15b6150a5bfc5604f29",
      "tree": "677ae00e00f6d483e4cc41fe23b6dfc98bc30207",
      "parents": [
        "767ea5c33a360ce88da24e296e802dace5821799"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 11 08:55:23 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 11 08:59:11 2009 -0800"
      },
      "message": "ceph: fix leak of monc mutex\n\nFix leak of monc mutex on ENOMEM or bad fsid when receiving new mon map.\nAudited all other users.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "767ea5c33a360ce88da24e296e802dace5821799",
      "tree": "ce2a9862093aec65cd8bd50764a325e053e4369b",
      "parents": [
        "c2e552e76e2c6907ca50cd9a4b747a2e2e8c615e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 09 12:34:01 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 09 15:57:16 2009 -0800"
      },
      "message": "ceph: do not feed bad device ids to crush\n\nDo not feed bad (large) device ids to CRUSH.\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": "415e49a9c4faf1a1480b1497da2037608e5aa2c5",
      "tree": "6c376396878b506f46e6cc57e108524916554842",
      "parents": [
        "153c8e6bf7ffee561e046e60b26ef6486c6fc9f2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 13:37:03 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 13:37:03 2009 -0800"
      },
      "message": "ceph: use kref for ceph_osd_request\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "153c8e6bf7ffee561e046e60b26ef6486c6fc9f2",
      "tree": "7af83c22a7599e011b7802e732fcc6a090fed65e",
      "parents": [
        "b6c1d5b81ea0841ae9d3ce2cda319ab986b081cf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 12:31:09 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 12:31:09 2009 -0800"
      },
      "message": "ceph: use kref for struct ceph_mds_request\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": "dd26d857a7bf1b5b734a23180c19eac3e46db944",
      "tree": "24b7ef04c08959df09739056b097ccd157e0251f",
      "parents": [
        "2f2ffd35822688a3650e503197b8724f47312748"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Dec 05 10:13:33 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 07 12:10:04 2009 -0800"
      },
      "message": "ceph: use kref for ceph_buffer\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2f2ffd35822688a3650e503197b8724f47312748",
      "tree": "19f9af39fcb3624e843f50eed8bb9ec330219b12",
      "parents": [
        "fb99f8810965b7e5a00e9754bd7bf556b00ba0c2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 04 10:27:17 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 04 10:27:17 2009 -0800"
      },
      "message": "ceph: mark v0.18 release\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fb99f8810965b7e5a00e9754bd7bf556b00ba0c2",
      "tree": "68551ace5c9b3bbb8efee7fd8bf3b1aec25b561a",
      "parents": [
        "33d4909ccc094b8262667bccdd52e01458bee0df"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 03 15:04:08 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 03 15:04:08 2009 -0800"
      },
      "message": "ceph: update MAINTAINERS entry with correct git URL\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "33d4909ccc094b8262667bccdd52e01458bee0df",
      "tree": "1943b9d2f1796566c827e317958c3bfa8c7dc14f",
      "parents": [
        "1d1de9160e0d8aff0d67a21137b62e63ffd6f184"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 02 14:42:39 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 03 14:59:48 2009 -0800"
      },
      "message": "ceph: allow preferred osd to be get/set via layout ioctl\n\nThere is certainly no reason not to report this.\n\nThe only real downside to allowing the user to set it is that you don\u0027t\nget default values by zeroing the layout struct (the default is -1).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1d1de9160e0d8aff0d67a21137b62e63ffd6f184",
      "tree": "45482bacc25511428b150424f0bdb934b6d9bf73",
      "parents": [
        "50b885b96c903e420a1eac54dd27626244704a06"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 02 11:54:25 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 03 14:59:48 2009 -0800"
      },
      "message": "ceph: hide /.ceph from readdir results\n\nWe need to skip /.ceph in (cached) readdir results, and exclude \"/.ceph\"\nfrom the cached ENOENT lookup check.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ],
  "next": "50b885b96c903e420a1eac54dd27626244704a06"
}
