)]}'
{
  "commit": "e467cde238184d1b0923db2cd61ae1c5a6dc15aa",
  "tree": "1383321c88ca25fcad20f56f14a8ca658bb25fb3",
  "parents": [
    "296f96fcfc160e29c01819c0c7b20c2dc8320edd"
  ],
  "author": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Mon Oct 22 11:03:38 2007 +1000"
  },
  "committer": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Tue Oct 23 15:49:54 2007 +1000"
  },
  "message": "Block driver using virtio.\n\nThe block driver uses scatter-gather lists with sg[0] being the\nrequest information (struct virtio_blk_outhdr) with the type, sector\nand inbuf id.  The next N sg entries are the bio itself, then the last\nsg is the status byte.  Whether the N entries are in or out depends on\nwhether it\u0027s a read or a write.\n\nWe accept the normal (SCSI) ioctls: they get handed through to the other\nside which can then handle it or reply that it\u0027s unsupported.  It\u0027s\nnot clear that this actually works in general, since I don\u0027t know\nif blk_pc_request() requests have an accurate rq_data_dir().\n\nAlthough we try to reply -ENOTTY on unsupported commands, ioctl(fd,\nCDROMEJECT) returns success to userspace.  This needs a separate\npatch.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ce4b1e484e64501f43b18e8b786b9639854ed0d0",
      "old_mode": 33188,
      "old_path": "drivers/block/Kconfig",
      "new_id": "4d0119ea9e351ce1a4d302b810fe3b709b3c713c",
      "new_mode": 33188,
      "new_path": "drivers/block/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "014e72121b5a255ae835d56b3ed7dd9989eab136",
      "old_mode": 33188,
      "old_path": "drivers/block/Makefile",
      "new_id": "d199eba7a0807a3530d18ce9d7f41a3c0d709924",
      "new_mode": 33188,
      "new_path": "drivers/block/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a901eee64ba52b620946050722bef5a82d0e7305",
      "new_mode": 33188,
      "new_path": "drivers/block/virtio_blk.c"
    },
    {
      "type": "modify",
      "old_id": "b101588a4b5a126478832df32499bcd27f9e87a1",
      "old_mode": 33188,
      "old_path": "include/linux/Kbuild",
      "new_id": "6a65231bc7855a8fc918ab22bcd3402cff3df218",
      "new_mode": 33188,
      "new_path": "include/linux/Kbuild"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7bd2bce0cfd964f2c4c5fe5bffa72977bc37fd2b",
      "new_mode": 33188,
      "new_path": "include/linux/virtio_blk.h"
    }
  ]
}
