)]}'
{
  "log": [
    {
      "commit": "e4d5e3a497e159be7c2dbe4c61cfb185d60cfde2",
      "tree": "fdc0fda2f6baf45fac8f572936dd5828b301308a",
      "parents": [
        "bfa01dfbe0a02f5ba434221c351f0510c06af392"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sat Oct 16 17:11:02 2010 +0900"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:05 2010 +0200"
      },
      "message": "jbd: Convert atomic_inc() to get_bh()\n\nConvert atomic_inc(\u0026bh-\u003eb_count) to get_bh(bh) for consistency.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9cb569d601e0b93e01c20a22872270ec663b75f6",
      "tree": "80b2568fae48018806e82f8884062dae8a5494ae",
      "parents": [
        "87e99511ea54510ffb60b98001d108794d5037f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:06:24 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:01 2010 -0400"
      },
      "message": "remove SWRITE* I/O types\n\nThese flags aren\u0027t real I/O types, but tell ll_rw_block to always\nlock the buffer instead of giving up on a failed trylock.\n\nInstead add a new write_dirty_buffer helper that implements this semantic\nand use it from the existing SWRITE* callers.  Note that the ll_rw_block\ncode had a bug where it didn\u0027t promote WRITE_SYNC_PLUG properly, which\nthis patch fixes.\n\nIn the ufs code clean up the helper that used to call ll_rw_block\nto mirror sync_dirty_buffer, which is the function it implements for\ncompound buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c28cbccec66a5ca292c6659bf5a0fe0c8459fa7",
      "tree": "d43540ca30413ac8b3717e29f15ccbbe789a76c5",
      "parents": [
        "19003c18e9b41f5c3aeb81c92356f90958e1f22f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 03 19:21:00 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 16 17:44:10 2009 +0200"
      },
      "message": "jbd: Journal block numbers can ever be only 32-bit use unsigned int for them\n\nIt does not make sense to store block number for journal as unsigned long\nsince they can be only 32-bit (because of on-disk format limitation). So\nchange in-memory structures and variables to use unsigned int instead.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e219cca082f52e7dfea41f3be264b7b5eb204227",
      "tree": "6d67c967064eed255b602626348e78119f84fb8b",
      "parents": [
        "45beca08dd8b6d6a65c5ffd730af2eac7a2c7a03"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 06 22:37:59 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 06 22:37:59 2008 -0500"
      },
      "message": "jbd: don\u0027t give up looking for space so easily in __log_wait_for_space\n\nCommit be07c4ed introducd a regression because it assumed that if\nthere were no transactions ready to be checkpointed, that no progress\ncould be made on making space available in the journal, and so the\njournal should be aborted.  This assumption is false; it could be the\ncase that simply calling cleanup_journal_tail() will recover the\nnecessary space, or, for small journals, the currently committing\ntransaction could be responsible for chewing up the required space in\nthe log, so we need to wait for the currently committing transaction\nto finish before trying to force a checkpoint operation.\n\nThis patch fixes the bug reported by Meelis Roos at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11937\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Duane Griffin \u003cduaneg@dghda.com\u003e\nCc: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "be07c4ed4043ab8c26f222348136141335e47a2f",
      "tree": "6c9dc77098a4cfe4212091aaecd2350c7b301733",
      "parents": [
        "9f818b4ac04f53458d0354950b4f229f54be4dbf"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Wed Oct 22 14:15:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:02 2008 -0700"
      },
      "message": "jbd: abort instead of waiting for nonexistent transactions\n\nThe __log_wait_for_space function sits in a loop checkpointing\ntransactions until there is sufficient space free in the journal.\nHowever, if there are no transactions to be processed (e.g.  because the\nfree space calculation is wrong due to a corrupted filesystem) it will\nnever progress.\n\nCheck for space being required when no transactions are outstanding and\nabort the journal instead of endlessly looping.\n\nThis patch fixes the bug reported by Sami Liedes at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10976\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nTested-by: Sami Liedes \u003csliedes@cc.hut.fi\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": "9f818b4ac04f53458d0354950b4f229f54be4dbf",
      "tree": "2f70be32757ea6b494e4272b7779950b282ed03c",
      "parents": [
        "2d7c820e56ce83b23daee9eb5343730fb309418e"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Wed Oct 22 14:15:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:02 2008 -0700"
      },
      "message": "jbd: test BH_Write_EIO to detect errors on metadata buffers\n\n__try_to_free_cp_buf(), __process_buffer(), and __wait_cp_io() test\nBH_Uptodate flag to detect write I/O errors on metadata buffers.  But by\ncommit 95450f5a7e53d5752ce1a0d0b8282e10fe745ae0 \"ext3: don\u0027t read inode\nblock if the buffer has a write error\"(*), BH_Uptodate flag can be set to\ninode buffers with BH_Write_EIO in order to avoid reading old inode data.\nSo now, we have to test BH_Write_EIO flag of checkpointing inode buffers\ninstead of BH_Uptodate.  This patch does it.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4afe978530702c934dfdb11f54073136818b2119",
      "tree": "5f7fb9539b46c0b390157f55c84017e14b7f605c",
      "parents": [
        "66f50ee3cee4c9d98eea0add6f439e6e5e0ca4a5"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Wed Oct 22 14:15:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:01 2008 -0700"
      },
      "message": "jbd: fix error handling for checkpoint io\n\nWhen a checkpointing IO fails, current JBD code doesn\u0027t check the error\nand continue journaling.  This means latest metadata can be lost from both\nthe journal and filesystem.\n\nThis patch leaves the failed metadata blocks in the journal space and\naborts journaling in the case of log_do_checkpoint().  To achieve this, we\nneed to do:\n\n1. don\u0027t remove the failed buffer from the checkpoint list where in\n   the case of __try_to_free_cp_buf() because it may be released or\n   overwritten by a later transaction\n2. log_do_checkpoint() is the last chance, remove the failed buffer\n   from the checkpoint list and abort the journal\n3. when checkpointing fails, don\u0027t update the journal super block to\n   prevent the journaled contents from being cleaned.  For safety,\n   don\u0027t update j_tail and j_tail_sequence either\n4. when checkpointing fails, notify this error to the ext3 layer so\n   that ext3 don\u0027t clear the needs_recovery flag, otherwise the\n   journaled contents are ignored and cleaned in the recovery phase\n5. if the recovery fails, keep the needs_recovery flag\n6. prevent cleanup_journal_tail() from being called between\n   __journal_drop_transaction() and journal_abort() (a race issue\n   between journal_flush() and __log_wait_for_space()\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-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": "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"
    }
  ]
}
