)]}'
{
  "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": "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": "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": "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": "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": "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"
    }
  ]
}
