)]}'
{
  "commit": "9ef91a677110ec200d7b2904fc4bcae5a77329ad",
  "tree": "fb402ed4b586edc26b7f4e55b378736fd36111b1",
  "parents": [
    "bf0cb498c581b6be7bf4c31f500487600abf2db5"
  ],
  "author": {
    "name": "Christoph Hellwig",
    "email": "hch@lst.de",
    "time": "Thu Aug 20 16:58:19 2009 +0200"
  },
  "committer": {
    "name": "Anthony Liguori",
    "email": "aliguori@us.ibm.com",
    "time": "Thu Aug 27 20:30:22 2009 -0500"
  },
  "message": "raw-posix: refactor AIO support\n\nCurrently the raw-posix.c code contains a lot of knowledge about the\nasynchronous I/O scheme that is mostly implemented in posix-aio-compat.c.\nAll this code does not really belong here and is getting a bit in the\nway of implementing native AIO on Linux.\n\nSo instead move all the guts of the AIO implementation into\nposix-aio-compat.c (which might need a better name, btw).\n\nThere\u0027s now a very small interface between the AIO providers and raw-posix.c:\n\n - an init routine is called from raw_open_common to return an AIO context\n   for this drive.  An AIO implementation may either re-use one context\n   for all drives, or use a different one for each as the Linux native\n   AIO support will do.\n - an submit routine is called from the aio_reav/writev methods to submit\n   an AIO request\n\nThere are no indirect calls involved in this interface as we need to\ndecide which one to call manually.  We will only call the Linux AIO native\ninit function if we were requested to by vl.c, and we will only call\nthe native submit function if we are asked to and the request is properly\naligned.  That\u0027s also the reason why the alignment check actually does\nthe inverse move and now goes into raw-posix.c.\n\nThe old posix-aio-compat.h headers is removed now that most of it\u0027s\ncontent is private to posix-aio-compat.c, and instead we add a new\nblock/raw-posix-aio.h headers is created containing only the tiny interface\nbetween raw-posix.c and the AIO implementation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Anthony Liguori \u003caliguori@us.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6761cd39f3a9d79417716265fb626f9674386428",
      "new_mode": 33188,
      "new_path": "block/raw-posix-aio.h"
    },
    {
      "type": "modify",
      "old_id": "ab43589402c7d7f14ef6293c69b01ecbbb5ec9ed",
      "old_mode": 33188,
      "old_path": "block/raw-posix.c",
      "new_id": "ca9bc616a7697be0fa1b47a2ee99b03d1d8cf426",
      "new_mode": 33188,
      "new_path": "block/raw-posix.c"
    },
    {
      "type": "modify",
      "old_id": "3d79f59854656ea28887d03f597890a4cd944210",
      "old_mode": 33188,
      "old_path": "posix-aio-compat.c",
      "new_id": "5ea197f6686144dee61f9939a0fed30539827301",
      "new_mode": 33188,
      "new_path": "posix-aio-compat.c"
    },
    {
      "type": "delete",
      "old_id": "1c5dcbd92046e0c59cde4236f5a0d6395cceff67",
      "old_mode": 33188,
      "old_path": "posix-aio-compat.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
