)]}'
{
  "log": [
    {
      "commit": "213c99ee0cf17ff0fbffb6fb540bd29615cd19d5",
      "tree": "168f72ba71feff5bf24707be622135b1016cdff5",
      "parents": [
        "40819f6fb227c1832935b775ac22aef10aa6f6dd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "message": "ceph: whitespace cleanup\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "73a7e693f9da464b0df07643af3f8ffc04dcc0b5",
      "tree": "1e0e09dd0ee0390e4da8f2247187b283e48b228e",
      "parents": [
        "2d9c98ae97c18e8b1c363af6a2e51d5d9e8c5e04"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 11:00:55 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 11:10:07 2010 -0700"
      },
      "message": "ceph: fix decoding of pool snap info\n\nThe pool info contains a vector for snap_info_t, not snap ids.  This fixes\nthe broken decoding, which would declare teh update corrupt when a pool\nsnapshot was created.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "effcb9ed43d16db27ae5837d93879e067e902151",
      "tree": "bbcc99baff812d42a3bbaaa6a33a95ee3709e893",
      "parents": [
        "a8b763a9b34561fea8e616c1439a71913ff2c1bd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 11:00:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: print useful error message when crush rule not found\n\nInclude the crush_ruleset in the error message.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cd84db6e4051a9fb7941d49d31a0193a3371fd61",
      "tree": "beb657b2cc6b4184d97a85502b29a291616a83ab",
      "parents": [
        "ca81f3f6bd759f90a4b940cddda1f8bc61a7725a"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jun 11 16:58:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: code cleanup\n\nMainly fixing minor issues reported by sparse.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bc4fdca85734d12cd2c7a25c52323ef6e6e5adef",
      "tree": "64063d3fc8e39dd22d1621c7e30b184585bfdaf2",
      "parents": [
        "252af5214682191e34e57204e1a31924fb82c207"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 20 16:19:56 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 23 10:02:06 2010 -0700"
      },
      "message": "ceph: fix pg_mapping leak on pg_temp updates\n\nFree the ceph_pg_mapping structs when they are removed from the pg_temp\nrbtree.  Also fix a leak in the __insert_pg_mapping() error path.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d",
      "tree": "cc3f2c6c33a49eae3880165def5a13e1af23b0ed",
      "parents": [
        "22b1de06c9fe128ca3de72560c3e8c2cabf2927a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jul 08 14:49:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 08:03:24 2010 -0700"
      },
      "message": "ceph: add kfree() to error path\n\nWe leak a \"pi\" on this error path.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cebc5be6b6c82a99231e9c9af451e9e3d3399ec6",
      "tree": "5899be89ac6396cb38ca938f922ef0a8ab57d3b3",
      "parents": [
        "ae32be31341a5fecfa16c5b3eb78095207182cce"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 10:22:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 10:22:48 2010 -0700"
      },
      "message": "ceph: fix crush map update decoding\n\nIf the incremental osdmap has a new crush map, advance the position after\ndecoding so that we can parse the rest of the osdmap properly.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7e34bc524ecae3a04d8cc427ee76ddad826a937b",
      "tree": "5065eb0e287e450aef2d8e03e3a18d8f895a4c9e",
      "parents": [
        "a41359fa355e7b450c610ed8e913d5d75c3c9c3b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat May 22 12:01:14 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:41 2010 -0700"
      },
      "message": "fs/ceph: Use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nIn the case of fs/ceph/inode.c, ERR_CAST is not needed, because the type of\nthe returned value is the same as the type of the enclosing function.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\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": "d85b705663905b3dae30007f824355bdcfcf3f00",
      "tree": "e47262683ed704786be3f0dae62bc4c57bd50ad7",
      "parents": [
        "04d000eb358919043da538f197d63f2a5924a525"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 10:24:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:56 2010 -0700"
      },
      "message": "ceph: resubmit requests on pg mapping change (not just primary change)\n\nOSD requests need to be resubmitted on any pg mapping change, not just when\nthe pg primary changes.  Resending only when the primary changes results in\noccasional \u0027hung\u0027 requests during osd cluster recovery or rebalancing.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "96e35b40c0d6206f56370f937f6f4722739eb273",
      "tree": "2c387b6e3f628484a1f4bdc964e529f89d5f5821",
      "parents": [
        "f5c07a2d8acfc98e00d3be6298f979e5b3175953",
        "a6a5349d17f2a5c37079826f1a1474c3d08c6b53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 14 18:45:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 14 18:45:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: use separate class for ceph sockets\u0027 sk_lock\n  ceph: reserve one more caps space when doing readdir\n  ceph: queue_cap_snap should always queue dirty context\n  ceph: fix dentry reference leak in dcache readdir\n  ceph: decode v5 of osdmap (pool names) [protocol change]\n  ceph: fix ack counter reset on connection reset\n  ceph: fix leaked inode ref due to snap metadata writeback race\n  ceph: fix snap context reference leaks\n  ceph: allow writeback of snapped pages older than \u0027oldest\u0027 snapc\n  ceph: fix dentry rehashing on virtual .snap dir\n"
    },
    {
      "commit": "2844a76a25a2fc2f5025cf128c95a14d86146d33",
      "tree": "a57b3dac7f92d187bafe3c10270b0d28edf405e3",
      "parents": [
        "0e0d5e0c4bb0476d53a43bfc87d03a25ec4b5579"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 09 15:46:42 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 09 15:50:58 2010 -0700"
      },
      "message": "ceph: decode v5 of osdmap (pool names) [protocol change]\n\nTeach the client to decode an updated format for the osdmap.  The new\nformat includes pool names, which will be useful shortly.  Get this change\nin earlier rather than later.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "efd7576b2392cc5a0934352936d793e8884c46bf",
      "tree": "4a45863267977b47b6e712987119af8a0a9a8581",
      "parents": [
        "80fc7314a7e26e8d2e4ba5b3d8cc2d4aeb750015"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 17 10:05:28 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:46:57 2010 -0700"
      },
      "message": "ceph: fix pg pool decoding from incremental osdmap update\n\nThe incremental map decoding of pg pool updates wasn\u0027t skipping\nthe snaps and removed_snaps vectors.  This caused osd requests\nto stall when pool snapshots were created or fs snapshots were\ndeleted.  Use a common helper for full and incremental map\ndecoders that decodes pools properly.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e53a8fd773065628b24605b289a9a40ee4a35d83",
      "tree": "7e590c04181eb8d4c9f8cc0e038853acc870f3f3",
      "parents": [
        "195d3ce2cc9a8ec69827f6369c41b269345b9988"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 01 14:50:05 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 01 15:28:00 2010 -0800"
      },
      "message": "ceph: fix osdmap decoding when pools include (removed) snaps\n\nAdd missing pointer dereference (p is a void **).\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": "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": "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": "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": "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": "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": "fb690390e305ea51e1883b105c7d3c52d7100ba5",
      "tree": "c099a71133225b1d22bba976e93dc6ab92a08986",
      "parents": [
        "1654dd0cf5ee1827322aca156af7d96d757201c7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 07 20:18:22 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 07 20:18:22 2009 -0800"
      },
      "message": "ceph: make CRUSH hash function a bucket property\n\nMake the integer hash function a property of the bucket it is used on.  This\nallows us to gracefully add support for new hash functions without starting\nfrom scatch.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1654dd0cf5ee1827322aca156af7d96d757201c7",
      "tree": "ba71b1a1e214b929937f02a1794b3d32b8ff1342",
      "parents": [
        "cfbbcd24a6bfd794295ee7ad76dfbff40ad6b934"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 21:55:25 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 21:55:25 2009 -0800"
      },
      "message": "ceph: make object hash a pg_pool property\n\nThe object will be hashed to a placement seed (ps) based on the pg_pool\u0027s\nhash function.  This allows new hashes to be introduced into an existing\nobject store, or selection of a hash appropriate to the objects that\nwill be stored in a particular pool.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1bdb70e59026838a79f77c440f8fe480a66e65e8",
      "tree": "8e3a897f4179e4eaf9a25b125203abe1bc68e6d3",
      "parents": [
        "f28bcfbe660a3246621a367020054d4f1a179cd9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 13:57:49 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 13:57:49 2009 -0800"
      },
      "message": "ceph: clean up \u0027osd%d down\u0027 console msg\n\nNo ceph prefix.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "51042122d4f85e0f8ee577a4230f172fcc57c456",
      "tree": "d5ccf5f84d362b6542a86eab6b6f50112111434b",
      "parents": [
        "63f2d211954b790fea0a9caeae605c7956535af6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 11:39:12 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 16:36:07 2009 -0800"
      },
      "message": "ceph: fix endian conversions for ceph_pg\n\nThe endian conversions don\u0027t quite work with the old union ceph_pg.  Just\nmake it a regular struct, and make each field __le.  This is simpler and it\nhas the added bonus of actually working.\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": "ff1d1f7179363209b7f1493ea39b666f50d05cf4",
      "tree": "3031029b3cc7d4c45beed61ebc0885192a306bf0",
      "parents": [
        "645a102581b3639836b17d147c35d574fd6e8267"
      ],
      "author": {
        "name": "Noah Watkins",
        "email": "noah@noahdesu.com",
        "time": "Fri Oct 30 12:57:30 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 30 13:56:14 2009 -0700"
      },
      "message": "ceph: fix intra strip unit length calculation\n\nCommit 645a102581b3639836b17d147c35d574fd6e8267 fixes calculation of object\noffset for layouts with multiple stripes per object. This updates the\ncalculation of the length written to take into account multiple stripes per\nobject.\n\nSigned-off-by: Noah Watkins \u003cnoah@noahdesu.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "645a102581b3639836b17d147c35d574fd6e8267",
      "tree": "f7117157b3f4eb4803189eccd7a5d6464d4fb255",
      "parents": [
        "5600f5ebd318f7af6f4b19a29f08d18bb85264e5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 15:15:05 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:45:41 2009 -0700"
      },
      "message": "ceph: fix object striping calculation for non-default striping schemes\n\nWe were incorrectly calculationing of object offset.  If we have multiple\nstripe units per object, we need to shift to the start of the current\nsu in addition to the offset within the su.\n\nAlso rename bno to ono (object number) to avoid some variable naming\nconfusion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5600f5ebd318f7af6f4b19a29f08d18bb85264e5",
      "tree": "dacf9f162b079f5978446cdd7461a83edf41ef3b",
      "parents": [
        "35e054a66e07f508aa7cfabc7db1757379093689"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 14:57:25 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:45:37 2009 -0700"
      },
      "message": "ceph: correct comment to match striping calculation\n\nThe object extent offset is the file offset _modulo_ the stripe unit.\nThe code was correct, the comment was wrong.\n\nReported-by: Noah Watkins \u003cjayhawk@soe.ucsc.edu\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "35e054a66e07f508aa7cfabc7db1757379093689",
      "tree": "3bf161c107ef24352c6ccc09b316b2e8ce0e74d8",
      "parents": [
        "fbbccec9c6218cbc9ff47c6d88bfc6b52079e3ea"
      ],
      "author": {
        "name": "Noah Watkins",
        "email": "noah@noahdesu.com",
        "time": "Wed Oct 28 14:04:48 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:44:37 2009 -0700"
      },
      "message": "ceph: remove redundant use of le32_to_cpu\n\nUsing stripe unit size calculated and saved on the stack to avoid\na redundant call to le32_to_cpu.\n\nSigned-off-by: Noah Watkins \u003cnoah@noahdesu.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ee7fdfaff7702bd209e3a013b2fc4643233f5465",
      "tree": "98affb849897dcefc0b256886f4e43df7aae1052",
      "parents": [
        "8fa9765576875200a7412a5300b5f0537211f038"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 19 11:41:51 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 19 11:42:41 2009 -0700"
      },
      "message": "ceph: include preferred osd in placement seed\n\nMix the preferred osd (if any) into the placement seed that is fed into\nthe CRUSH object placement calculation.  This prevents all the placement\npgs from peering with the same osds.\n\nRev the osd client protocol with this change.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c89136ea4253c73e89e97f5138bb22d97ad9f564",
      "tree": "ba8080adfaa6f5b84eadd4d65eff70840f9dfe22",
      "parents": [
        "535bbb530764b1b2b3b732837f0e61e1baae7109"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 09:59:09 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 09:59:09 2009 -0700"
      },
      "message": "ceph: convert encode/decode macros to inlines\n\nThis avoids the fugly pass by reference and makes the code a bit easier\nto read.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "991abb6ecfc8edf9863aa6a3f43249e63f9d4d4e",
      "tree": "19484fb1965b1ee2cc61a5e7256d3a5aaba4c5fe",
      "parents": [
        "0ba6478df7c6bef0f4b2625554545f941f89fb97"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 08 22:22:37 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 11:58:11 2009 -0700"
      },
      "message": "ceph: fail gracefully on corrupt osdmap (bad pg_temp mapping)\n\nReturn an error and report a corrupt map instead of crying BUG().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f24e9980eb860d8600cbe5ef3d2fd9295320d229",
      "tree": "10f43450ad2cd4d799dd02d33c02d4ed8bef39d6",
      "parents": [
        "2f2dc053404febedc9c273452d9d518fb31fde72"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:10 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:10 2009 -0700"
      },
      "message": "ceph: OSD client\n\nThe OSD client is responsible for reading and writing data from/to the\nobject storage pool.  This includes determining where objects are\nstored in the cluster, and ensuring that requests are retried or\nredirected in the event of a node failure or data migration.\n\nIf an OSD does not respond before a timeout expires, keepalive\nmessages are sent across the lossless, ordered communications channel\nto ensure that any break in the TCP is discovered.  If the session\ndoes reset, a reconnection is attempted and affected requests are\nresent (by the message transport layer).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ]
}
