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