)]}'
{
  "log": [
    {
      "commit": "4be929be34f9bdeffa40d815d32d7d60d2c7f03b",
      "tree": "4d2c6e2b8ef766e565e2e050ee151de2e02081d3",
      "parents": [
        "940370fc86b920b51a34217a1facc3e9e97c2456"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 24 14:33:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN\n\n- C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not\n  USHORT_MAX/SHORT_MAX/SHORT_MIN.\n\n- Make SHRT_MIN of type s16, not int, for consistency.\n\n[akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]\n[akpm@linux-foundation.org: fix security/keys/keyring.c]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf48aabb894fd0639ab72a26e8abbd7683ef23c2",
      "tree": "cd7ba4504558ed518126966fa79f18adf2f37fd6",
      "parents": [
        "fb3d38b9904888aa8e36d88b2388dc70934b2169"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Wed Oct 28 20:11:03 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:50 2009 +0100"
      },
      "message": "tree-wide: fix typos \"offest\" -\u003e \"offset\"\n\nThis patch was generated by\n\n\tgit grep -E -i -l \u0027offest\u0027 | xargs -r perl -p -i -e \u0027s/offest/offset/\u0027\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "73be192b17e43b6dc4f492dab41d70ab5b9d2908",
      "tree": "9482070421cda81f490036b28033d4f300a58a94",
      "parents": [
        "15633a220ffe74fc61bc8117e6a89a494011ea3d"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 06 14:57:08 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:15:36 2009 -0700"
      },
      "message": "ocfs2: Add statistics for the checksum and ecc operations.\n\nIt would be nice to know how often we get checksum failures.  Even\nbetter, how many of them we can fix with the single bit ecc.  So, we add\na statistics structure.  The structure can be installed into debugfs\nwherever the user wants.\n\nFor ocfs2, we\u0027ll put it in the superblock-specific debugfs directory and\npass it down from our higher-level functions.  The stats are only\nregistered with debugfs when the filesystem supports metadata ecc.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "58896c4d0e5868360ea0693c607d5bf74f79da6b",
      "tree": "d598e01e07eb5a6a5c45ba45017b41f6d33eed54",
      "parents": [
        "7bb458a58588f397068e4166c615e9fcc7480c16"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Dec 16 13:54:40 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2: One more hamming code optimization.\n\nThe previous optimization used a fast find-highest-bit-set operation to\ngive us a good starting point in calc_code_bit().  This version lets the\ncaller cache the previous code buffer bit offset.  Thus, the next call\nalways starts where the last one left off.\n\nThis reduces the calculation another 39%, for a total 80% reduction from\nthe original, naive implementation.  At least, on my machine.  This also\nbrings the parity calculation to within an order of magnitude of the\ncrc32 calculation.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7bb458a58588f397068e4166c615e9fcc7480c16",
      "tree": "a5d330c12f983837097f775e2d7c6c4d85fb9acd",
      "parents": [
        "e798b3f8a920c82a8e556dd54df97f0d3d0f9144"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Dec 15 18:24:33 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2: Another hamming code optimization.\n\nIn the calc_code_bit() function, we must find all powers of two beneath\nthe code bit number, *after* it\u0027s shifted by those powers of two.  This\nrequires a loop to see where it ends up.\n\nWe can optimize it by starting at its most significant bit.  This shaves\n32% off the time, for a total of 67.6% shaved off of the original, naive\nimplementation.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e798b3f8a920c82a8e556dd54df97f0d3d0f9144",
      "tree": "1f9c19ba29f65e44c10d77597a746224e0e72c72",
      "parents": [
        "9d28cfb73f3abccce001daf2d247b16bf20e2248"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Dec 15 17:13:48 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Don\u0027t hand-code xor in ocfs2_hamming_encode().\n\nWhen I wrote ocfs2_hamming_encode(), I was following documentation of\nthe algorithm and didn\u0027t have quite the (possibly still imperfect) grasp\nof it I do now.  As part of this, I literally hand-coded xor.  I would\ntest a bit, and then add that bit via xor to the parity word.\n\nI can, of course, just do a single xor of the parity word and the source\nword (the code buffer bit offset).  This cuts CPU usage by 53% on a\nmostly populated buffer (an inode containing utmp.h inline).\n\nJoel\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d6b32bbb3eae3fb787f1c33bf9f767ca1ddeb208",
      "tree": "ce38de666096f571f4b1754e898729cf2d9eb435",
      "parents": [
        "684ef278377725d505aa23259ee673dab9b11851"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 17 14:55:01 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:31 2009 -0800"
      },
      "message": "ocfs2: block read meta ecc.\n\nAdd block check calls to the read_block validate functions.  This is the\nalmost all of the read-side checking of metaecc.  xattr buckets are not checked\nyet.   Writes are also unchecked, and so a read-write mount will quickly fail.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "70ad1ba7b48364d758a112df0823edc5ca6632aa",
      "tree": "0ec30f4a812c1e66e3e3e7457eca1db8a451549a",
      "parents": [
        "ab552d54673f262d7f70014003d3928d29270f22"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 16 17:54:25 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:31 2009 -0800"
      },
      "message": "ocfs2: Add the underlying blockcheck code.\n\nThis is the code that computes crc32 and ecc for ocfs2 metadata blocks.\nThere are high-level functions that check whether the filesystem has the\necc feature, mid-level functions that work on a single block or array of\nbuffer_heads, and the low-level ecc hamming code that can handle\nmultiple buffers like crc32_le().\n\nIt\u0027s not hooked up to the filesystem yet.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    }
  ]
}
