)]}'
{
  "commit": "e5bc49ba7439b9726006d031d440cba96819f0f8",
  "tree": "103c02a297e4c7ba3ba1fd3c90a6bd2d6687f511",
  "parents": [
    "8d0df7a3d1ecbaf5d5602a59055c8ca993855bed"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@redhat.com",
    "time": "Thu Mar 12 14:31:28 2009 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Mar 12 16:20:23 2009 -0700"
  },
  "message": "pipe_rdwr_fasync: fix the error handling to prevent the leak/crash\n\nIf the second fasync_helper() fails, pipe_rdwr_fasync() returns the error\nbut leaves the file on -\u003efasync_readers.\n\nThis was always wrong, but since 233e70f4228e78eb2f80dc6650f65d3ae3dbf17c\n\"saner FASYNC handling on file close\" we have the new problem.  Because in\nthis case setfl() doesn\u0027t set FASYNC bit, __fput() will not do\n-\u003efasync(0), and we leak fasync_struct with -\u003efa_file pointing to the\nfreed file.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3a48ba5179d55000e4d6b26f5a1eb7bfb5a5891d",
      "old_mode": 33188,
      "old_path": "fs/pipe.c",
      "new_id": "14f502b89cf5c2eb46cf8f2fb476d055a7fb118a",
      "new_mode": 33188,
      "new_path": "fs/pipe.c"
    }
  ]
}
