)]}'
{
  "log": [
    {
      "commit": "39caa0916ef27cf1da5026eb708a2b8413156f75",
      "tree": "8cabf096e8a485ac623883ad57064ca1d18f253b",
      "parents": [
        "cbf8ae32f66a9ceb8907ad9e16663c2a29e48990"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Thu Jun 07 14:21:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 14:43:55 2012 -0700"
      },
      "message": "btree: catch NULL value before it does harm\n\nStoring NULL values in the btree is illegal and can lead to memory\ncorruption and possible other fun as well.  Catch it on insert, instead\nof waiting for the inevitable.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbf8ae32f66a9ceb8907ad9e16663c2a29e48990",
      "tree": "0e290072f6c077fffeafd74b540c7536e3aa9873",
      "parents": [
        "7d8a45695cc8f9fcdf4121fcbd897ecb63f758e4"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Thu Jun 07 14:21:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 14:43:55 2012 -0700"
      },
      "message": "btree: fix tree corruption in btree_get_prev()\n\nThe memory the parameter __key points to is used as an iterator in\nbtree_get_prev(), so if we save off a bkey() pointer in retry_key and\nthen assign that to __key, we\u0027ll end up corrupting the btree internals\nwhen we do eg\n\n\tlongcpy(__key, bkey(geo, node, i), geo-\u003ekeylen);\n\nto return the key value.  What we should do instead is use longcpy() to\ncopy the key value that retry_key points to __key.\n\nThis can cause a btree to get corrupted by seemingly read-only\noperations such as btree_for_each_safe.\n\n[akpm@linux-foundation.org: avoid the double longcpy()]\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96b62067f970ff529c98913311d33f4b57b453dc",
      "tree": "4e696c155b2cce6fd0068a9be2a0c09e42bb38d6",
      "parents": [
        "c957b614bde8539416dcde8d702370ff30b1c662"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "steve@purestorage.com",
        "time": "Tue Jan 10 15:09:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "btree: export btree_get_prev() so modules can use btree_for_each\n\nThe btree_for_each API is implemented with macros that internally call\nbtree_get_prev(), so if btree_get_prev() isn\u0027t exported then modules fail\nto link if they try to use one of the btree_for_each macros.  Since the\nrest of the btree API is exported, we should keep things orthogonal and\nmake this work too.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "43aa7ac736a4e21aae4882bd8f7c67403aed45b8",
      "tree": "8ebbe9c6053c6552de8ee120384afb1b02bf8f47",
      "parents": [
        "bdef2fe88b1e4bde7458aedd207929ce3f9d66ee"
      ],
      "author": {
        "name": "kirjanov@gmail.com",
        "email": "kirjanov@gmail.com",
        "time": "Sat May 15 12:32:34 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 12:48:10 2010 -0700"
      },
      "message": "lib/btree: fix possible NULL pointer dereference\n\nmempool_alloc() can return null in atomic case.\n\nSigned-off-by: Denis Kirjanov \u003ckirjanov@gmail.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5db53f3e80dee2d9dff5e534f9e9fe1db17c9936",
      "tree": "066f2873eeb7eb86466f6389e45892d957db3de2",
      "parents": [
        "66b00a7c93ec782d118d2c03bd599cfd041e80a1"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Nov 20 20:13:39 2009 +0100"
      },
      "committer": {
        "name": "Joern Engel",
        "email": "joern@logfs.org",
        "time": "Fri Nov 20 20:13:39 2009 +0100"
      },
      "message": "[LogFS] add new flash file system\n\nThis is a new flash file system. See\nDocumentation/filesystems/logfs.txt\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\n"
    }
  ]
}
