)]}'
{
  "commit": "f2a459565b02b60408f3f2e5ca992a031319712b",
  "tree": "1521bd5d0e47e5bd23ecfcde1e3763a4491ed2ae",
  "parents": [
    "eb178619f930fa2ba2348de332a1ff1c66a31424"
  ],
  "author": {
    "name": "Dave Chinner",
    "email": "dchinner@redhat.com",
    "time": "Mon Jan 21 23:53:54 2013 +1100"
  },
  "committer": {
    "name": "Ben Myers",
    "email": "bpm@sgi.com",
    "time": "Mon Jan 28 12:50:50 2013 -0600"
  },
  "message": "xfs: limit speculative prealloc near ENOSPC thresholds\n\nThere is a window on small filesytsems where specualtive\npreallocation can be larger than that ENOSPC throttling thresholds,\nresulting in specualtive preallocation trying to reserve more space\nthan there is space available. This causes immediate ENOSPC to be\ntriggered, prealloc to be turned off and flushing to occur. One the\nnext write (i.e. next 4k page), we do exactly the same thing, and so\neffective drive into synchronous 4k writes by triggering ENOSPC\nflushing on every page while in the window between the prealloc size\nand the ENOSPC prealloc throttle threshold.\n\nFix this by checking to see if the prealloc size would consume all\nfree space, and throttle it appropriately to avoid premature\nENOSPC...\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "add06b4e9a635511afc3e2716836e210ff794c46",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_iomap.c",
      "new_id": "364818eef40e55720a6a4509afbde63a1b48cd05",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_iomap.c"
    }
  ]
}
