)]}'
{
  "commit": "1aa9b4b9bc10a0cf6e6109c2997d759a76e840e5",
  "tree": "52a18d3d83f28e8a736775c2a88ad9cb60f48da6",
  "parents": [
    "03221702608c60b470fc86a23bdf4bc30e5bd59f"
  ],
  "author": {
    "name": "Andrew Morton",
    "email": "akpm@linux-foundation.org",
    "time": "Sun Apr 01 23:49:43 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Mon Apr 02 10:06:08 2007 -0700"
  },
  "message": "[PATCH] revert \"retries in ext3_prepare_write() violate ordering requirements\"\n\nRevert e92a4d595b464c4aae64be39ca61a9ffe9c8b278.\n\nDmitry points out\n\n\"When we block_prepare_write() failed while ext3_prepare_write() we jump to\n \"failure\" label and call ext3_prepare_failure() witch search last mapped bh\n and invoke commit_write untill it.  This is wrong!!  because some bh from\n begining to the last mapped bh may be not uptodate.  As a result we commit to\n disk not uptodate page content witch contains garbage from previous usage.\"\n\nand\n\n\"Unexpected file size increasing.\"\n\n   Call trace the same as it was in first issue but result is different.\n   For example we have file with i_size is zero.  we want write two blocks ,\n   but fs has only one free block.\n\n   -\u003eext3_prepare_write(...from \u003d\u003d 0, to \u003d\u003d 2048)\n     retry:\n     -\u003eblock_prepare_write() \u003d\u003d -ENOSPC# we failed but allocated one block here.\n     -\u003eext3_prepare_failure()\n       -\u003ecommit_write( from \u003d\u003d 0, to \u003d\u003d 1024) # after this i_size becomes 1024 :)\n     if (ret \u003d\u003d -ENOSPC \u0026\u0026 ext3_should_retry_alloc(inode-\u003ei_sb, \u0026retries))\n        goto retry;\n\n   Finally when all retries will be spended ext3_prepare_failure return\n   -ENOSPC, but i_size was increased and later block trimm procedures can\u0027t\n   help here.\n\nWe don\u0027t appear to have the horsepower to fix these issues, so let\u0027s put\nthings back the way they were for now.\n\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Dmitriy Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a824f4ce5c608d231a6862b5a1c86de167d0882",
      "old_mode": 33188,
      "old_path": "fs/ext3/inode.c",
      "new_id": "a5b150f7e8a2ccb0a46957241ef90e3be0932fe0",
      "new_mode": 33188,
      "new_path": "fs/ext3/inode.c"
    }
  ]
}
