)]}'
{
  "commit": "b4fd310e163477236a241580b3b8c29aee65f4cc",
  "tree": "3aec7527c4a9589824cb4d96f87446eb59bdef10",
  "parents": [
    "64b7673f91c0c3614028c5942b0d6a91d0b64a98"
  ],
  "author": {
    "name": "Jeff Dike",
    "email": "jdike@addtoit.com",
    "time": "Fri Sep 16 19:27:49 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sat Sep 17 11:50:00 2005 -0700"
  },
  "message": "[PATCH] uml: preserve errno in error paths\n\nThe poster child for this patch is the third tuntap_user hunk.  When an ioctl\nfails, it properly closes the opened file descriptor and returns.  However,\nthe close resets errno to 0, and the \u0027return errno\u0027 that follows returns 0\nrather than the value that ioctl set.  This caused the caller to believe that\nthe device open succeeded and had opened file descriptor 0, which caused no\nend of interesting behavior.\n\nThe rest of this patch is a pass through the UML sources looking for places\nwhere errno could be reset before being passed back out.  A common culprit is\nprintk, which could call write, being called before errno is returned.\n\nIn some cases, where the code ends up being much smaller, I just deleted the\nprintk.\n\nThere was another case where a caller of run_helper looked at errno after a\nfailure, rather than the return value of run_helper, which was the errno value\nthat it wanted.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo Giarrusso \u003cblaisorblade@yahoo.it\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": "3fd69067a5f5caa136f3e68e95640b22ca123193",
      "old_mode": 33188,
      "old_path": "arch/um/drivers/mcast_user.c",
      "new_id": "5db136e2651cc20a7883ad6ce3048423bbfaa8dd",
      "new_mode": 33188,
      "new_path": "arch/um/drivers/mcast_user.c"
    },
    {
      "type": "modify",
      "old_id": "a5b8aeade1c588c672840e8dfd34563158c49bf6",
      "old_mode": 33188,
      "old_path": "arch/um/drivers/mconsole_user.c",
      "new_id": "310c1f823f26713eb9a4d6689fd20d504b8e6fb2",
      "new_mode": 33188,
      "new_path": "arch/um/drivers/mconsole_user.c"
    },
    {
      "type": "modify",
      "old_id": "ed84d01df6cc94f9a828415d01fbe0ab099a26cc",
      "old_mode": 33188,
      "old_path": "arch/um/drivers/pty.c",
      "new_id": "0306a1b215b7d8016f04bd3eca2dba996ee53dfa",
      "new_mode": 33188,
      "new_path": "arch/um/drivers/pty.c"
    },
    {
      "type": "modify",
      "old_id": "93dc1911363ff3f7d3fd2a782fcf295fb1f0b80f",
      "old_mode": 33188,
      "old_path": "arch/um/drivers/xterm.c",
      "new_id": "90e0e5ff451e1cc2f21909ff90b6a40575172baa",
      "new_mode": 33188,
      "new_path": "arch/um/drivers/xterm.c"
    },
    {
      "type": "modify",
      "old_id": "f83e1e8e2392f06b4f99384c4345421f617bb260",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/helper.c",
      "new_id": "33fb0bd3b11a13af3f0db7ddf272af3aa4f3e871",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/helper.c"
    },
    {
      "type": "modify",
      "old_id": "954ff67cc8b3ec9f701fea22eb9182f07869edcd",
      "old_mode": 33188,
      "old_path": "arch/um/kernel/user_util.c",
      "new_id": "a25f3ea11fd7fb2106108bdee8d3b061ddcfe500",
      "new_mode": 33188,
      "new_path": "arch/um/kernel/user_util.c"
    },
    {
      "type": "modify",
      "old_id": "182905be869e1842167af83a24487714a8920e4d",
      "old_mode": 33188,
      "old_path": "arch/um/os-Linux/aio.c",
      "new_id": "e942beb4e1085d4265028673c43fbe4c8ffcd277",
      "new_mode": 33188,
      "new_path": "arch/um/os-Linux/aio.c"
    },
    {
      "type": "modify",
      "old_id": "4b83c6c3f48d25c5b3084b19c6a330063f2eef02",
      "old_mode": 33188,
      "old_path": "arch/um/os-Linux/drivers/tuntap_user.c",
      "new_id": "4ba9b17adf13cac85f62dfc224218bbeb9b354d7",
      "new_mode": 33188,
      "new_path": "arch/um/os-Linux/drivers/tuntap_user.c"
    },
    {
      "type": "modify",
      "old_id": "fd45bb2609079a3bd3f13339ec8154d6a168ef69",
      "old_mode": 33188,
      "old_path": "arch/um/os-Linux/file.c",
      "new_id": "f55773c819e64fa6be68fe1d319326b11958c195",
      "new_mode": 33188,
      "new_path": "arch/um/os-Linux/file.c"
    }
  ]
}
