)]}'
{
  "log": [
    {
      "commit": "4faa5285283fad081443e3612ca426a311bb6c7e",
      "tree": "f5178184a94fb8343afee94a5b7cd47c05a2bc49",
      "parents": [
        "e7507ed91e093b9e4e218e41ebfdce05458258fc"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Mon Oct 17 16:43:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 17:03:57 2005 -0700"
      },
      "message": "[PATCH] aio: revert lock_kiocb()\n\nlock_kiocb() was introduced to serialize retrying and cancellation.  In the\nprocess of doing so it tried to sleep waiting for KIF_LOCKED while holding\nthe ctx_lock spinlock.  Recent fixes have ensured that multiple concurrent\nretries won\u0027t be attempted for a given iocb.  Cancel has other problems and\nhas no significant in-tree users that have been complaining about it.  So\nfor the immediate future we\u0027ll revert sleeping with the lock held and will\naddress proper cancellation and retry serialization in the future.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nAcked-by: 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": "897f15fb587fd2772b9e7ff6ec0265057f3c3975",
      "tree": "d975ce5f131b8f42915cf264122cd265661651e0",
      "parents": [
        "998765e5588b197737d457e16f72832d8036190f"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Sep 30 11:58:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 30 12:41:17 2005 -0700"
      },
      "message": "[PATCH] aio: remove unlocked task_list test and resulting race\n\nOnly one of the run or kick path is supposed to put an iocb on the run\nlist.  If both of them do it than one of them can end up referencing a\nfreed iocb.  The kick path could delete the task_list item from the wait\nqueue before getting the ctx_lock and putting the iocb on the run list.\nThe run path was testing the task_list item outside the lock so that it\ncould catch ki_retry methods that return -EIOCBRETRY *without* putting the\niocb on a wait queue and promising to call kick_iocb.  This unlocked check\ncould then race with the kick path to cause both to try and put the iocb on\nthe run list.\n\nThe patch stops the run path from testing task_list by requring that any\nki_retry that returns -EIOCBRETRY *must* guarantee that kick_iocb() will be\ncalled in the future.  aio_p{read,write}, the only in-tree -EIOCBRETRY\nusers, are updated.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Benjamin LaHaise \u003cbcrl@linux.intel.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"
    }
  ]
}
