)]}'
{
  "commit": "76d42bd96984832c4ea8bc8cbd74e496ac31409e",
  "tree": "138fb5c39d671166485cf2e16e450332daeb7081",
  "parents": [
    "78dbe706e22f54bce61571ad837238382e1ba5f9"
  ],
  "author": {
    "name": "Wu Fengguang",
    "email": "wfg@mail.ustc.edu.cn",
    "time": "Sun Jun 25 05:48:43 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sun Jun 25 10:01:17 2006 -0700"
  },
  "message": "[PATCH] readahead: backoff on I/O error\n\nBackoff readahead size exponentially on I/O error.\n\nMichael Tokarev \u003cmjt@tls.msk.ru\u003e described the problem as:\n\n[QUOTE]\nSuppose there\u0027s a CD-rom with a scratch/etc, one sector is unreadable.\nIn order to \"fix\" it, one have to read it and write to another CD-rom,\nor something.. or just ignore the error (if it\u0027s just a skip in a video\nstream).  Let\u0027s assume the unreadable block is number U.\n\nBut current behavior is just insane.  An application requests block\nnumber N, which is before U. Kernel tries to read-ahead blocks N..U.\nCdrom drive tries to read it, re-read it.. for some time.  Finally,\nwhen all the N..U-1 blocks are read, kernel returns block number N\n(as requested) to an application, successefully.\n\nNow an app requests block number N+1, and kernel tries to read\nblocks N+1..U+1.  Retrying again as in previous step.\n\nAnd so on, up to when an app requests block number U-1.  And when,\nfinally, it requests block U, it receives read error.\n\nSo, kernel currentry tries to re-read the same failing block as\nmany times as the current readahead value (256 (times?) by default).\n\nThis whole process already killed my cdrom drive (I posted about it\nto LKML several months ago) - literally, the drive has fried, and\ndoes not work anymore.  Ofcourse that problem was a bug in firmware\n(or whatever) of the drive *too*, but.. main problem with that is\ncurrent readahead logic as described above.\n[/QUOTE]\n\nWhich was confirmed by Jens Axboe \u003caxboe@suse.de\u003e:\n\n[QUOTE]\nFor ide-cd, it tends do only end the first part of the request on a\nmedium error. So you may see a lot of repeats :/\n[/QUOTE]\n\nWith this patch, retries are expected to be reduced from, say, 256, to 5.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Wu Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1ed4be2a7654084743042058e6c9715aa80880b6",
      "old_mode": 33188,
      "old_path": "mm/filemap.c",
      "new_id": "9c7334bafda8da5150f4a9f0a7556bda113b8a19",
      "new_mode": 33188,
      "new_path": "mm/filemap.c"
    }
  ]
}
