)]}'
{
  "commit": "5e84ea3a9c662dc2d7a48703a4468fad954a3b7f",
  "tree": "3fa0fb26a7c8a970213584104cc2498ef46d60a3",
  "parents": [
    "4345caba340f051e10847924fc078ae18ed6695c"
  ],
  "author": {
    "name": "Jens Axboe",
    "email": "jaxboe@fusionio.com",
    "time": "Mon Mar 21 10:14:27 2011 +0100"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "jaxboe@fusionio.com",
    "time": "Mon Mar 21 10:14:27 2011 +0100"
  },
  "message": "block: attempt to merge with existing requests on plug flush\n\nOne of the disadvantages of on-stack plugging is that we potentially\nlose out on merging since all pending IO isn\u0027t always visible to\neverybody. When we flush the on-stack plugs, right now we don\u0027t do\nany checks to see if potential merge candidates could be utilized.\n\nCorrect this by adding a new insert variant, ELEVATOR_INSERT_SORT_MERGE.\nIt works just ELEVATOR_INSERT_SORT, but first checks whether we can\nmerge with an existing request before doing the insertion (if we fail\nmerging).\n\nThis fixes a regression with multiple processes issuing IO that\ncan be merged.\n\nThanks to Shaohua Li \u003cshaohua.li@intel.com\u003e for testing and fixing\nan accounting bug.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e1fcf7a24668132d3f4e4e3e811d47052af10a76",
      "old_mode": 33188,
      "old_path": "block/blk-core.c",
      "new_id": "525693237a4aa7fa6c085d5410ff4e7f030a01f9",
      "new_mode": 33188,
      "new_path": "block/blk-core.c"
    },
    {
      "type": "modify",
      "old_id": "ea85e20d5e9462be965f3f117bd7c3efcf51aa57",
      "old_mode": 33188,
      "old_path": "block/blk-merge.c",
      "new_id": "cfcc37cb222b63722bc048814c0f392205d1a898",
      "new_mode": 33188,
      "new_path": "block/blk-merge.c"
    },
    {
      "type": "modify",
      "old_id": "49d21af81d07faf36924deb463400dce2f97d6cb",
      "old_mode": 33188,
      "old_path": "block/blk.h",
      "new_id": "c8db371a921d55760e2d9494c25a0f52c16bd659",
      "new_mode": 33188,
      "new_path": "block/blk.h"
    },
    {
      "type": "modify",
      "old_id": "542ce826b401a7874ac7205afd9f2641b3b6520b",
      "old_mode": 33188,
      "old_path": "block/elevator.c",
      "new_id": "c387d3168734c21d74336b536819d35dc77719a5",
      "new_mode": 33188,
      "new_path": "block/elevator.c"
    },
    {
      "type": "modify",
      "old_id": "ec6f72b844774b7414f69e99a48243ddbbc72af1",
      "old_mode": 33188,
      "old_path": "include/linux/elevator.h",
      "new_id": "d93efcc4457050ffa1e511a825c273f60796ed69",
      "new_mode": 33188,
      "new_path": "include/linux/elevator.h"
    }
  ]
}
