)]}'
{
  "commit": "04b2fa9f8f36ec6fb6fd1c9dc9df6fff0cd27323",
  "tree": "f9fdc8004b4decca27e30da1614529eaf1455136",
  "parents": [
    "599bd19bdc4c6b20fd91d50f2f79dececbaf80c1"
  ],
  "author": {
    "name": "Christoph Hellwig",
    "email": "hch@lst.de",
    "time": "Mon Feb 02 14:49:06 2015 +0100"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Fri Mar 13 12:10:27 2015 -0400"
  },
  "message": "fs: split generic and aio kiocb\n\nMost callers in the kernel want to perform synchronous file I/O, but\nstill have to bloat the stack with a full struct kiocb.  Split out\nthe parts needed in filesystem code from those in the aio code, and\nonly allocate those needed to pass down argument on the stack.  The\naio code embedds the generic iocb in the one it allocates and can\neasily get back to it by using container_of.\n\nAlso add a -\u003eki_complete method to struct kiocb, this is used to call\ninto the aio code and thus removes the dependency on aio for filesystems\nimpementing asynchronous operations.  It will also allow other callers\nto substitute their own completion callback.\n\nWe also add a new -\u003eki_flags field to work around the nasty layering\nviolation recently introduced in commit 5e33f6 (\"usb: gadget: ffs: add\neventfd notification about ffs events\").\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "175c9956cbe3a36949526029103d38b4c97225c3",
      "old_mode": 33188,
      "old_path": "drivers/usb/gadget/function/f_fs.c",
      "new_id": "b64538b498dc96b76414b5bd4dfc59e017deb273",
      "new_mode": 33188,
      "new_path": "drivers/usb/gadget/function/f_fs.c"
    },
    {
      "type": "modify",
      "old_id": "200f9a584064fd9199ba99ff75a2e26a33c788f7",
      "old_mode": 33188,
      "old_path": "drivers/usb/gadget/legacy/inode.c",
      "new_id": "a4a80694f607e4234e989b071a80e19611aff562",
      "new_mode": 33188,
      "new_path": "drivers/usb/gadget/legacy/inode.c"
    },
    {
      "type": "modify",
      "old_id": "8ca8df1c355096eea5abd56bca7b1479b9fdb726",
      "old_mode": 33188,
      "old_path": "fs/aio.c",
      "new_id": "958286536a10a2223489edc6bfb9f05ee7f83e36",
      "new_mode": 33188,
      "new_path": "fs/aio.c"
    },
    {
      "type": "modify",
      "old_id": "e181b6b2e297fb5d3bd03a07efe382f0dd204972",
      "old_mode": 33188,
      "old_path": "fs/direct-io.c",
      "new_id": "c38b460776e644d9d8e81dc89514eb93475f1fac",
      "new_mode": 33188,
      "new_path": "fs/direct-io.c"
    },
    {
      "type": "modify",
      "old_id": "f81d83eb9758e52216ac5d33c47e0ed20cfd6798",
      "old_mode": 33188,
      "old_path": "fs/fuse/file.c",
      "new_id": "a5c5e38b3ff8008a86ad7d08aff25fa402111f34",
      "new_mode": 33188,
      "new_path": "fs/fuse/file.c"
    },
    {
      "type": "modify",
      "old_id": "27cebf1640706db1a917272b17598703a787f4b9",
      "old_mode": 33188,
      "old_path": "fs/nfs/direct.c",
      "new_id": "5db3385fc108b8efb32b91bf25b38b5c50ab3032",
      "new_mode": 33188,
      "new_path": "fs/nfs/direct.c"
    },
    {
      "type": "modify",
      "old_id": "f8516430490da60cb49b65b88c4ef57afae132f6",
      "old_mode": 33188,
      "old_path": "include/linux/aio.h",
      "new_id": "5c40b61285ac2db2224386b4fb73fa5562899e3c",
      "new_mode": 33188,
      "new_path": "include/linux/aio.h"
    }
  ]
}
