)]}'
{
  "commit": "fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9",
  "tree": "d6909973e402b3171ee409f660b33df2fad029ba",
  "parents": [
    "46d2277c796f9f4937bfa668c40b2e3f43e93dd0"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.osdl.org",
    "time": "Wed Dec 20 13:46:42 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.osdl.org",
    "time": "Thu Dec 21 09:19:57 2006 -0800"
  },
  "message": "VM: Remove \"clear_page_dirty()\" and \"test_clear_page_dirty()\" functions\n\nThey were horribly easy to mis-use because of their tempting naming, and\nthey also did way more than any users of them generally wanted them to\ndo.\n\nA dirty page can become clean under two circumstances:\n\n (a) when we write it out.  We have \"clear_page_dirty_for_io()\" for\n     this, and that function remains unchanged.\n\n     In the \"for IO\" case it is not sufficient to just clear the dirty\n     bit, you also have to mark the page as being under writeback etc.\n\n (b) when we actually remove a page due to it becoming inaccessible to\n     users, notably because it was truncate()\u0027d away or the file (or\n     metadata) no longer exists, and we thus want to cancel any\n     outstanding dirty state.\n\nFor the (b) case, we now introduce \"cancel_dirty_page()\", which only\ntouches the page state itself, and verifies that the page is not mapped\n(since cancelling writes on a mapped page would be actively wrong as it\nis still accessible to users).\n\nSome filesystems need to be fixed up for this: CIFS, FUSE, JFS,\nReiserFS, XFS all use the old confusing functions, and will be fixed\nseparately in subsequent commits (with some of them just removing the\noffending logic, and others using clear_page_dirty_for_io()).\n\nThis was confirmed by Martin Michlmayr to fix the apt database\ncorruption on ARM.\n\nCc: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Andrei Popa \u003candrei.popa@i-neo.ro\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Gordon Farquharson \u003cgordonfarquharson@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ed2c22340ad73c0a807bacb7c1baffbf27dfaafb",
      "old_mode": 33188,
      "old_path": "fs/hugetlbfs/inode.c",
      "new_id": "4f4cd132b571337b8145d2c7432056b6d92b8d61",
      "new_mode": 33188,
      "new_path": "fs/hugetlbfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "4830a3bedfb240480e1ade7c58d030b0ab12e978",
      "old_mode": 33188,
      "old_path": "include/linux/page-flags.h",
      "new_id": "350878a2d848cf2efe561449ac7d9ccece15630b",
      "new_mode": 33188,
      "new_path": "include/linux/page-flags.h"
    },
    {
      "type": "modify",
      "old_id": "237107c1b0847d79e6139daf5c811ea1c432c087",
      "old_mode": 33188,
      "old_path": "mm/page-writeback.c",
      "new_id": "b3a198c9248d7947e7e3a929848431f7fbcb5954",
      "new_mode": 33188,
      "new_path": "mm/page-writeback.c"
    },
    {
      "type": "modify",
      "old_id": "9bfb8e853860df2da0d752948352f87e3c099abd",
      "old_mode": 33188,
      "old_path": "mm/truncate.c",
      "new_id": "bf9e2965d6664dacec17094162d20772433923d3",
      "new_mode": 33188,
      "new_path": "mm/truncate.c"
    }
  ]
}
