)]}'
{
  "log": [
    {
      "commit": "95c354fe9f7d6decc08a92aa26eb233ecc2155bf",
      "tree": "ec9267032ea875e84216cfb20acb2cfc7c62149f",
      "parents": [
        "a95d67f87e1a5f1b4429be3ba3bf7b4051657908"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "message": "spinlock: lockbreak cleanup\n\nThe break_lock data structure and code for spinlocks is quite nasty.\nNot only does it double the size of a spinlock but it changes locking to\na potentially less optimal trylock.\n\nPut all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a\n__raw_spin_is_contended that uses the lock data itself to determine whether\nthere are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is\nnot set.\n\nRename need_lockbreak to spin_needbreak, make it use spin_is_contended to\ndecouple it from the spinlock implementation, and make it typesafe (rwlocks\ndo not have any need_lockbreak sites -- why do they even get bloated up\nwith that break_lock then?).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d4beaf4ab5f89496f2bcf67db62ad95d99bfeff6",
      "tree": "ae6d005199017e9a0ade169fd69cb73d6c0ac88f",
      "parents": [
        "369b8f5a70402d9fe77006cd0044c8a3fcd08430"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Dec 04 23:45:27 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Dec 05 09:21:20 2007 -0800"
      },
      "message": "jbd: Fix assertion failure in fs/jbd/checkpoint.c\n\nBefore we start committing a transaction, we call\n__journal_clean_checkpoint_list() to cleanup transaction\u0027s written-back\nbuffers.\n\nIf this call happens to remove all of them (and there were already some\nbuffers), __journal_remove_checkpoint() will decide to free the transaction\nbecause it isn\u0027t (yet) a committing transaction and soon we fail some\nassertion - the transaction really isn\u0027t ready to be freed :).\n\nWe change the check in __journal_remove_checkpoint() to free only a\ntransaction in T_FINISHED state.  The locking there is subtle though (as\neverywhere in JBD ;().  We use j_list_lock to protect the check and a\nsubsequent call to __journal_drop_transaction() and do the same in the end\nof journal_commit_transaction() which is the only place where a transaction\ncan get to T_FINISHED state.\n\nProbably I\u0027m too paranoid here and such locking is not really necessary -\ncheckpoint lists are processed only from log_do_checkpoint() where a\ntransaction must be already committed to be processed or from\n__journal_clean_checkpoint_list() where kjournald itself calls it and thus\ntransaction cannot change state either.  Better be safe if something\nchanges in future...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@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": "5886269962f94fa9185c32db3ec936c612503235",
      "tree": "2f24dabcf5791319ebb1fbdfb5dbc58284714275",
      "parents": [
        "01afd80626e98c2347bc25be92ee4a3faf314514"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "ukleinek@informatik.uni-freiburg.de",
        "time": "Wed May 09 07:51:49 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:58:16 2007 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Kleine-König \u003cukleinek@informatik.uni-freiburg.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "e9ad5620bfb901df8a7a2603c88689ededeecaf1",
      "tree": "82a2b22e1b7401b98fc2f201b8df2db05764332a",
      "parents": [
        "7543fc7b3abfee8c6cd6349ebd5e5fde02fac984"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Wed Sep 27 01:49:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:10 2006 -0700"
      },
      "message": "[PATCH] ext3: More whitespace cleanups\n\nMore white space cleanups in preparation of cloning ext4 from ext3.\nRemoving spaces that precede a tab.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae6ddcc5f24d6b06ae9231dc128904750a4155e0",
      "tree": "93c6e20b513f39b616af101dabe9b756f7300d0d",
      "parents": [
        "e7ab8d65055e9b9dfc131d0467cfc5a8368d7ee4"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Sep 27 01:49:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:09 2006 -0700"
      },
      "message": "[PATCH] ext3 and jbd cleanup: remove whitespace\n\nRemove whitespace from ext3 and jbd, before we clone ext4.\n\nSigned-off-by: Mingming Cao\u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7ab8d65055e9b9dfc131d0467cfc5a8368d7ee4",
      "tree": "b4e71a005cd4688cd42f19173cc77e67dbeae622",
      "parents": [
        "bbf2bef9f50eb119ffadd735eb0966ac8a04f91f"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josht@us.ibm.com",
        "time": "Wed Sep 27 01:49:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:08 2006 -0700"
      },
      "message": "[PATCH] jbd: add lock annotation to jbd_sync_bh\n\njbd_sync_bh releases journal-\u003ej_list_lock.  Add a lock annotation to this\nfunction so that sparse can check callers for lock pairing, and so that\nsparse will not complain about this function since it intentionally uses\nthe lock in this manner.\n\nSigned-off-by: Josh Triplett \u003cjosh@freedesktop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78ce89c92bc6eaf5933b5664bff64253a7103bd7",
      "tree": "edaadf283127c1a74bfe3aa7b165c1cf45d14347",
      "parents": [
        "cdaad343b561cdeb38b0578bb038eb5e87ed5551"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jun 23 02:06:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:08 2006 -0700"
      },
      "message": "[PATCH] JBD: split checkpoint lists\n\nSplit the checkpoint list of the transaction into two lists.  In the first\nlist we keep the buffers that need to be submitted for IO.  In the second\nlist are kept buffers that were already submitted and we just have to wait\nfor the IO to complete.  This should simplify a handling of checkpoint\nlists a bit and can eventually be also a performance gain.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2c68ee754c40099c59828e59618a54726f76126a",
      "tree": "b656a0caa9b31749b5b6f9a3f7a1f3ffc482552c",
      "parents": [
        "f24075bd0c1cd1cc2cf86d394f960aa0401de573"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: jbd, j_checkpoint_mutex\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c8903f6373f9abecf060bad53ca36bc4ac037f2",
      "tree": "473644b1f2999e3e516cd4f55a3535d9bb29595d",
      "parents": [
        "be5efffb762fa4a7b9a7a45ebf34b13e3bf5a2d8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Feb 14 13:53:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] jbd: revert checkpoint list changes\n\nThis patch reverts commit f93ea411b73594f7d144855fd34278bcf34a9afc:\n  [PATCH] jbd: split checkpoint lists\n\nThis broke journal_flush() for OCFS2, which is its method of being sure\nthat metadata is sent to disk for another node.\n\nAnd two related commits 8d3c7fce2d20ecc3264c8d8c91ae3beacdeaed1b and\n43c3e6f5abdf6acac9b90c86bf03f995bf7d3d92 with the subjects:\n  [PATCH] jbd: log_do_checkpoint fix\n  [PATCH] jbd: remove_transaction fix\n\nThese seem to be incremental bugfixes on the original patch and as such are\nno longer needed.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d3c7fce2d20ecc3264c8d8c91ae3beacdeaed1b",
      "tree": "d338bd23c63a24e08962ab2dfa429ddcf7aed5ad",
      "parents": [
        "2149bcabc5f6fd635935d57480044ba4c11bc020"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 18 17:42:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:16 2006 -0800"
      },
      "message": "[PATCH] jbd: log_do_checkpoint fix\n\nWhile checkpointing we have to check that our transaction still is in the\ncheckpoint list *and* (not or) that it\u0027s not just a different transaction\nwith the same address.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f93ea411b73594f7d144855fd34278bcf34a9afc",
      "tree": "50419ba9250be6f923470b4eff73370512c00267",
      "parents": [
        "6fe2e70bbed3995d930f39452fb6ce3be7dc47dc"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jan 06 00:19:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:59 2006 -0800"
      },
      "message": "[PATCH] jbd: split checkpoint lists\n\nSplit the checkpoint list of the transaction into two lists.  In the first\nlist we keep the buffers that need to be submitted for IO.  In the second\nlist are kept buffers that were already submitted and we just have to wait\nfor the IO to complete.  This should simplify a handling of checkpoint\nlists a bit and can eventually be also a performance gain.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26707699b5337ea471ba1774447e8a1170c99e52",
      "tree": "13ea647feb0f0eb026a4a00fd0e1d522d71876ca",
      "parents": [
        "a7662236253374012d364106b6dc9161bd929e2e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:55 2005 -0700"
      },
      "message": "[PATCH] Change ll_rw_block() calls in JBD\n\nWe must be sure that the current data in buffer are sent to disk.  Hence we\nhave to call ll_rw_block() with SWRITE.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e3b11a9be6ac94bf4af81757b6a10e7e65b846f",
      "tree": "6159b542abf0515e5980822546ca0f84380cd3d3",
      "parents": [
        "00ea81459c279f14a7b344320a71c94f60f88929"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 02 14:02:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 02 15:12:29 2005 -0700"
      },
      "message": "[PATCH] ext3: fix list scanning in __cleanup_transaction\n\nFix a bug in list scanning that can cause us to skip the last buffer on the\ncheckpoint list (and hence fail to do any progress under some rather\nunfavorable conditions).\n\nThe problem is we first do jh\u003dnext_jh and then test\n\n\t} while (jh!\u003dlast_jh);\n\nHence we skip the last buffer on the list (if it was not the only buffer on\nthe list).  As we already do jh\u003dnext_jh; in the beginning of the loop we\nare safe to just remove the assignment in the end.  It can happen that \u0027jh\u0027\nwill be freed at the point we test jh !\u003d last_jh but that does not matter\nas we never *dereference* the pointer.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "00ea81459c279f14a7b344320a71c94f60f88929",
      "tree": "b68c067a416e7c303823a1f7477daa9f05b37819",
      "parents": [
        "1e86d1c648508fd50e6c9960576b87906a7906ad"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 02 14:02:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 02 15:12:29 2005 -0700"
      },
      "message": "[PATCH] ext3: fix log_do_checkpoint() assertion failure\n\nFix possible false assertion failure in log_do_checkpoint().  We might fail\nto detect that we actually made a progress when cleaning up the checkpoint\nlists if we don\u0027t retry after writing something to disk.  The patch was\nconfirmed to fix observed assertion failures for several users.\n\nWhen we flushed some buffers we need to retry scanning the list.\nOtherwise we can fail to detect our progress.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
