)]}'
{
  "log": [
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-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": "8d8c85117fbcbaea7718870ad4b1ddd12940d9b0",
      "tree": "3e4c56b29a11ccad95a24679ecf41d341ffb844f",
      "parents": [
        "e3df18983ea090a2e00dd5c2c6167bb431a0e0a2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:06:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:50 2006 -0800"
      },
      "message": "[PATCH] jbd: convert kjournald to kthread API\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3df18983ea090a2e00dd5c2c6167bb431a0e0a2",
      "tree": "99f7944da7c8c85eed6738c1ef9f357f7dcae928",
      "parents": [
        "1d9b7d97d6661edb44ce08f17e47c66d4ac20e34"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:06:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:50 2006 -0800"
      },
      "message": "[PATCH] jbd: embed j_commit_timer in journal struct\n\nThe kjournald timer is currently on the kernel thread\u0027s stack and the journal\nstructure points at it.  Save a pointer hop by moving the timer into the\njournal structure.\n\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": "fe1dcbc4f311c2e6c23b33c0fa8572461618ab3e",
      "tree": "189e935ff275bba20629e46e2832bd523acf6cff",
      "parents": [
        "bc5e483da61eb5ab8d24b4a919fb512e5886d02c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 04 23:27:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] jbd: fix transaction batching\n\nBen points out that:\n\n  When writing files out using O_SYNC, jbd\u0027s 1 jiffy delay results in a\n  significant drop in throughput as the disk sits idle.  The patch below\n  results in a 4-5x performance improvement (from 6.5MB/s to ~24-30MB/s on my\n  IDE test box) when writing out files using O_SYNC.\n\nSo optimise the batching code by omitting it entirely if the process which is\ndoing a sync write is the same as the one which did the most recent sync\nwrite.  If that\u0027s true, we\u0027re unlikely to get any other processes joining the\ntransaction.\n\n(Has been in -mm for ages - it took me a long time to get on to performance\ntesting it)\n\nNumbers, on write-cache-disabled IDE:\n\n/usr/bin/time -p synctest -n 10 -uf -t 1 -p 1 dir-name\n\nUnpatched:\n\t40 seconds\nPatched:\n\t35 seconds\nBatching disabled:\n\t35 seconds\n\nThis is the problematic single-process-doing-fsync case.  With multiple\nfsyncing processes the numbers are AFACIT unaltered by the patch.\n\nAside: performance testing and instrumentation shows that the transaction\nbatching almost doesn\u0027t help (testing with synctest -n 1 -uf -t 100 -p 10\ndir-name on non-writeback-caching IDE).  This is because by the time one\nprocess is running a synchronous commit, a bunch of other processes already\nhave a transaction handle open, so they\u0027re all going to batch into the same\ntransaction anyway.\n\nThe batching seems to offer maybe 5-10% speedup with this workload, but I\u0027m\npretty sure it was more important than that when it was first developed 4-odd\nyears ago...\n\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "43c3e6f5abdf6acac9b90c86bf03f995bf7d3d92",
      "tree": "06c78af9eeab5ad504e949a78e4ffa1e3cbb6067",
      "parents": [
        "8d3c7fce2d20ecc3264c8d8c91ae3beacdeaed1b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 18 17:42:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:16 2006 -0800"
      },
      "message": "[PATCH] jbd: remove_transaction fix\n\nWe have to check that also the second checkpoint list is non-empty before\ndropping the transaction.\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": "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": "f99d49adf527fa6f7a9c42257fa76bca6b8df1e3",
      "tree": "41dddbc336016f9dc9557cdb15300de5e599dac1",
      "parents": [
        "6044ec8882c726e325017bd948aa0cd94ad33abc"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Mon Nov 07 01:01:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] kfree cleanup: fs\n\nThis is the fs/ part of the big kfree cleanup patch.\n\nRemove pointless checks for NULL prior to calling kfree() in fs/.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c8bec6d5f24b01c53b792b06a645e78d482020d",
      "tree": "d394d7d77087c02f84f84a27d3e9933d9c096bed",
      "parents": [
        "2500e7abc8f606d87b2590f205dac080640b6b04"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] jbd doc: fix some kernel-doc warnings\n\nAdd structure fields kernel-doc for 2 fields in struct journal_s.\n\nWarning(/var/linsrc/linux-2614-rc4//include/linux/jbd.h:808): No description found for parameter \u0027j_wbuf\u0027\nWarning(/var/linsrc/linux-2614-rc4//include/linux/jbd.h:808): No description found for parameter \u0027j_wbufsize\u0027\n\nConvert fs/jbd/recovery.c non-static functions to kernel-doc format.\n\nfs/jbd/recovery.c doesn\u0027t export any symbols, so it should use\n!I instead of !E to eliminate this warning message:\n\nWarning(/var/linsrc/linux-2614-rc4//fs/jbd/recovery.c): no structured comments found\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27496a8c67bef4d789d8e3c8317ca35813a507ae",
      "tree": "fe99a34fe5a800e41af61853e7444ddddf45d014",
      "parents": [
        "7d877f3bda870ab5f001bd92528654471d5966b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:48 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: fs/*\n\n - -\u003ereleasepage() annotated (s/int/gfp_t), instances updated\n - missing gfp_t in fs/* added\n - fixed misannotation from the original sweep caught by bitwise checks:\n   XFS used __nocast both for gfp_t and for flags used by XFS allocator.\n   The latter left with unsigned int __nocast; we might want to add a\n   different type for those but for now let\u0027s leave them alone.  That,\n   BTW, is a case when __nocast use had been actively confusing - it had\n   been used in the same code for two different and similar types, with\n   no way to catch misuses.  Switch of gfp_t to bitwise had caught that\n   immediately...\n\nOne tricky bit is left alone to be dealt with later - mapping-\u003eflags is\na mix of gfp_t and error indications.  Left alone for now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac",
      "tree": "41ff880a87412cf55eb12425e916fda57955ee5c",
      "parents": [
        "373016e9e1353f2af871993d27d00768f08cc883"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:36 2005 -0700"
      },
      "message": "[PATCH] fs: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.  Also use helper\nfunctions to convert between human time units and jiffies rather than constant\nHZ division to avoid rounding errors.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4407c2b6b297339e296facf62e020cf66e55053d",
      "tree": "485d60b1cb5c6013d09a0327355e216b202bd8ed",
      "parents": [
        "e39f07c83bac96850265b87a69dfc5c90ed4f1f5"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:57 2005 -0700"
      },
      "message": "[PATCH] Fix race in do_get_write_access()\n\n  attached patch should fix the following race:\n     Proc 1                               Proc 2\n\n     __flush_batch()\n       ll_rw_block()\n                                        do_get_write_access()\n\t\t\t\t\t   lock_buffer\n                                             jh is only waiting for checkpoint\n\t\t\t\t\t     -\u003e b_transaction \u003d\u003d NULL -\u003e\n\t\t\t\t\t     do nothing\n                                           unlock_buffer\n    test_set_buffer_locked()\n    test_clear_buffer_dirty()\n                                           __journal_file_buffer()\n                                        change the data\n    submit_bh()\n\nand we have sent wrong data to disk...  We now clean the dirty buffer flag\nunder buffer lock in all cases and hence we know that whenever a buffer is\nstarting to be journaled we either finish the pending write-out before\nattaching a buffer to a transaction or we won\u0027t write the buffer until the\ntransaction is going to be committed.\n\nThe test in jbd_unexpected_dirty_buffer() is redundant - remove it.\nFurthermore we have to clear the buffer dirty bit under the buffer lock to\nprevent races with buffer write-out (and hence prevent returning a buffer with\nIO happening).\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": "e6c9f5c1888097c936334bf9740024520ca47b8e",
      "tree": "6fcf2cccb7e4d155dd663f10001efdb2a9d7daae",
      "parents": [
        "cbf0d27a131639f4f3e4faa94373c5c6f89f8f07"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:54 2005 -0700"
      },
      "message": "[PATCH] Fix JBD race in t_forget list handling\n\nFix race between journal_commit_transaction() and other places as\njournal_unmap_buffer() that are adding buffers to transaction\u0027s t_forget list.\n We have to protect against such places by holding j_list_lock even when\ntraversing the t_forget list.  The fact that other places can only add buffers\nto the list makes the locking easier.  OTOH the lock ranking complicates the\nstuff...\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": "cbf0d27a131639f4f3e4faa94373c5c6f89f8f07",
      "tree": "327deb90d3e77bf65189ff41c6121e2e865537ea",
      "parents": [
        "3870ee8c63d5e55aea990654dfeb231264e13134"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 06 15:19:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:54 2005 -0700"
      },
      "message": "[PATCH] kjournald: missing JFS_UNMOUNT check\n\nIt seems that kjournald() may be missing a check of the JFS_UNMOUNT flag\nbefore calling schedule().  This showed up in testing of OCFS2 recovery\nwhere our recovery thread would hang in journal_kill_thread() called from\njournal_destroy() because kjournald never got a chance to read the flag to\nshut down before the schedule().\n\nZach pointed out the missing check which led me to hack up this trivial\npatch.  It\u0027s been tested many times now and I have yet to reproduce the\nhang, which was happening very regularly before.\n\n\u003cmild rant\u003e\nI\u0027m guessing that we could really use some wait_event() calls with helper\nfunctions in, well, most of jbd these days which would make a ton of the\nwait code there vastly cleaner.\n\u003c/mild rant\u003e\n\nAs for why this doesn\u0027t happen in ext3 (or OCFS2 during normal\nmount/unmount of the local nodes journal), I think it may that the specific\ntiming of events in the ocfs2 recovery thread exposes a race there.\nBecause ocfs2_replay_journal() is only interested in playing back the\njournal, initialization and shutdown happen very quicky with no other\nmetadata put into that specific journal.\n\nAcked-by: \"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": "022a4a7bbdefdedc2706a13c81c832d8c3173c6d",
      "tree": "e7bf4f08f02c35b39769a5c2aeeea020c055de99",
      "parents": [
        "202e5979af4d91c7ca05892641131dee22653259"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Sep 06 15:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:19 2005 -0700"
      },
      "message": "[PATCH] fs/jbd/: cleanups\n\nThis patch contains the following cleanups:\n- make needlessly global functions static\n- journal.c: remove the unused global function __journal_internal_check\n             and move the check to journal_init\n- remove the following write-only global variable:\n  - journal.c: current_journal\n- remove the following unneeded EXPORT_SYMBOL:\n  - journal.c: journal_recover\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73",
      "tree": "d1e7c1e2e8902072042aefc3a7976b271cf76021",
      "parents": [
        "b3e112bcc19abd8e9657dca34a87316786e096f3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Fri Jun 24 23:13:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 17:10:13 2005 -0700"
      },
      "message": "[PATCH] Cleanup patch for process freezing\n\n1. Establish a simple API for process freezing defined in linux/include/sched.h:\n\n   frozen(process)\t\tCheck for frozen process\n   freezing(process)\t\tCheck if a process is being frozen\n   freeze(process)\t\tTell a process to freeze (go to refrigerator)\n   thaw_process(process)\tRestart process\n   frozen_process(process)\tProcess is frozen now\n\n2. Remove all references to PF_FREEZE and PF_FROZEN from all\n   kernel sources except sched.h\n\n3. Fix numerous locations where try_to_freeze is manually done by a driver\n\n4. Remove the argument that is no longer necessary from two function calls.\n\n5. Some whitespace cleanup\n\n6. Clear potential race in refrigerator (provides an open window of PF_FREEZE\n   cleared before setting PF_FROZEN, recalc_sigpending does not check\n   PF_FROZEN).\n\nThis patch does not address the problem of freeze_processes() violating the rule\nthat a task may only modify its own flags by setting PF_FREEZE. This is not clean\nin an SMP environment. freeze(process) is therefore not SMP safe!\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\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": "d13df84ff7f3f3e26a9643c1d3cbf94cef9b5b59",
      "tree": "9531a56973381aa48a10fbc7073d1109f380d550",
      "parents": [
        "19272d4385126c2ac369c9f6137a27a08aee50d1"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sat Apr 16 15:26:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:26:36 2005 -0700"
      },
      "message": "[PATCH] jbd dirty buffer leak fix\n\nThis fixes the lots-of-fsx-linux-instances-cause-a-slow-leak bug.\n\nIt\u0027s been there since 2.6.6, caused by:\n\nftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mm4/broken-out/jbd-move-locked-buffers.patch\n\nThat patch moves under-writeout ordered-data buffers onto a separate journal\nlist during commit.  It took out the old code which was based on a single\nlist.\n\nThe old code (necessarily) had logic which would restart I/O against buffers\nwhich had been redirtied while they were on the committing transaction\u0027s\nt_sync_datalist list.  The new code only writes buffers once, ignoring\nredirtyings by a later transaction, which is good.\n\nBut over on the truncate side of things, in journal_unmap_buffer(), we\u0027re\ntreating buffers on the t_locked_list as inviolable things which belong to the\ncommitting transaction, and we just leave them alone during concurrent\ntruncate-vs-commit.\n\nThe net effect is that when truncate tries to invalidate a page whose buffers\nare on t_locked_list and have been redirtied, journal_unmap_buffer() just\nleaves those buffers alone.  truncate will remove the page from its mapping\nand we end up with an anonymous clean page with dirty buffers, which is an\nillegal state for a page.  The JBD commit will not clean those buffers as they\nare removed from t_locked_list.  The VM (try_to_free_buffers) cannot reclaim\nthese pages.\n\nThe patch teaches journal_unmap_buffer() about buffers which are on the\ncommitting transaction\u0027s t_locked_list.  These buffers have been written and\nI/O has completed.  We can take them off the transaction and undirty them\nwithin the context of journal_invalidatepage()-\u003ejournal_unmap_buffer().\n\nAcked-by: \"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": "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"
    }
  ]
}
