)]}'
{
  "commit": "ca4414804114fd0095b317785bc0b51862e62ebb",
  "tree": "1d6900bb9761902a6587149180377aa01e9f23a2",
  "parents": [
    "d24697e1824467f3921c84a94f011f43d6466403"
  ],
  "author": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Thu May 07 17:25:10 2015 +0200"
  },
  "committer": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Fri May 08 14:45:11 2015 +0200"
  },
  "message": "qemu-nbd: only send a limited number of errno codes on the wire\n\nRight now, NBD includes potentially platform-specific error values in\nthe wire protocol.\n\nLuckily, most common error values are more or less universal: in\nparticular, of all errno values \u003c\u003d 34 (up to ERANGE), they are all the\nsame on supported platforms except for 11 (which is EAGAIN on Windows and\nLinux, but EDEADLK on Darwin and the *BSDs).  So, in order to guarantee\nsome portability, only keep a handful of possible error codes and squash\neverything else to EINVAL.\n\nThis patch defines a limited set of errno values that are valid for the\nNBD protocol, and specifies recommendations for what error to return\nin specific corner cases.  The set of errno values is roughly based on\nthe errors listed in the read(2) and write(2) man pages, with some\nexceptions:\n\n- ENOMEM is added for servers that implement copy-on-write or other\n  formats that require dynamic allocation.\n\n- EDQUOT is not part of the universal set of errors; it can be changed\n  to ENOSPC on the wire format.\n\n- EFBIG is part of the universal set of errors, but it is also changed\n  to ENOSPC because it is pretty similar to ENOSPC or EDQUOT.\n\nIncoming values will in general match system errno values, but not\non the Hurd which has different errno values (they have a \"subsystem\ncode\" equal to 0x10 in bits 24-31).  The Hurd is probably not something\nto which QEMU has been ported, but still do the right thing and\nreverse-map the NBD errno values to the system errno values.\n\nThe corresponding patch to the NBD protocol description can be found at\nhttp://article.gmane.org/gmane.linux.drivers.nbd.general/3154.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb1b9bbf7c6063e8e4c05b199cd94dacb5c55b98",
      "old_mode": 33188,
      "old_path": "nbd.c",
      "new_id": "06b501ba672b94ac7f9df07e1cd25eb41b13923b",
      "new_mode": 33188,
      "new_path": "nbd.c"
    }
  ]
}
