)]}'
{
  "commit": "d55b5fdaf40846221d543937b786956e27837fda",
  "tree": "ecdf572d7d2b08b4f7b31d804542a920934b6d9a",
  "parents": [
    "0f6ed7c2641fe4cea83cd09c21928ca30c0983ec"
  ],
  "author": {
    "name": "Zach Brown",
    "email": "zach.brown@oracle.com",
    "time": "Mon Nov 07 00:59:31 2005 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Mon Nov 07 07:53:38 2005 -0800"
  },
  "message": "[PATCH] aio: remove aio_max_nr accounting race\n\nAIO was adding a new context\u0027s max requests to the global total before\ntesting if that resulting total was over the global limit.  This let\ninnocent tasks get their new limit tested along with a racing guilty task\nthat was crossing the limit.  This serializes the _nr accounting with a\nspinlock It also switches to using unsigned long for the global totals.\nIndividual contexts are still limited to an unsigned int\u0027s worth of\nrequests by the syscall interface.\n\nThe problem and fix were verified with a simple program that spun creating\nand destroying a context while holding on to another long lived context.\nBefore the patch a task creating a tiny context could get a spurious EAGAIN\nif it raced with a task creating a very large context that overran the\nlimit.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "edfca5b7553581c65cddc50ac14e18f84ec2826c",
      "old_mode": 33188,
      "old_path": "fs/aio.c",
      "new_id": "20bb919eb1958e6e4dbbf96f6f04812a23983a24",
      "new_mode": 33188,
      "new_path": "fs/aio.c"
    },
    {
      "type": "modify",
      "old_id": "0decf66117c16c995a35ab8017440dc73368972c",
      "old_mode": 33188,
      "old_path": "include/linux/aio.h",
      "new_id": "403d71dcb7c818beb2b43101af33d6133f6d5622",
      "new_mode": 33188,
      "new_path": "include/linux/aio.h"
    },
    {
      "type": "modify",
      "old_id": "8e56e2495542be41fa688aa7a15604cb2e3e6897",
      "old_mode": 33188,
      "old_path": "kernel/sysctl.c",
      "new_id": "e1351200ce85217b4d499e0b9365a22cfbeb5036",
      "new_mode": 33188,
      "new_path": "kernel/sysctl.c"
    }
  ]
}
