)]}'
{
  "commit": "7b2259b3e53f128c10a9fded0965e69d4a949847",
  "tree": "c1827144c22dd49775190e05de791531e9fd21fd",
  "parents": [
    "68402ddc677005ed1b1359bbc1f279548cfc0928"
  ],
  "author": {
    "name": "Christoph Lameter",
    "email": "clameter@sgi.com",
    "time": "Sun Jun 25 05:46:48 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sun Jun 25 10:00:55 2006 -0700"
  },
  "message": "[PATCH] page migration: Support a vma migration function\n\nHooks for calling vma specific migration functions\n\nWith this patch a vma may define a vma-\u003evm_ops-\u003emigrate function.  That\nfunction may perform page migration on its own (some vmas may not contain page\nstructs and therefore cannot be handled by regular page migration.  Pages in a\nvma may require special preparatory treatment before migration is possible\netc) .  Only mmap_sem is held when the migration function is called.  The\nmigrate() function gets passed two sets of nodemasks describing the source and\nthe target of the migration.  The flags parameter either contains\n\nMPOL_MF_MOVE\twhich means that only pages used exclusively by\n\t\tthe specified mm should be moved\n\nor\n\nMPOL_MF_MOVE_ALL which means that pages shared with other processes\n\t\tshould also be moved.\n\nThe migration function returns 0 on success or an error condition.  An error\ncondition will prevent regular page migration from occurring.\n\nOn its own this patch cannot be included since there are no users for this\nfunctionality.  But it seems that the uncached allocator will need this\nfunctionality at some point.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andi Kleen \u003cak@muc.de\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": "5dba23a1c0d0e0d75dc0bb465aaba2836bca5bcc",
      "old_mode": 33188,
      "old_path": "include/linux/migrate.h",
      "new_id": "48148e0cdbd179725de653eff14a229c26ad6153",
      "new_mode": 33188,
      "new_path": "include/linux/migrate.h"
    },
    {
      "type": "modify",
      "old_id": "71c5d2f667ed90ea40a47f14b1291e332da91bbd",
      "old_mode": 33188,
      "old_path": "include/linux/mm.h",
      "new_id": "a929ea197e4844da5d11fc9f43da506138b276f7",
      "new_mode": 33188,
      "new_path": "include/linux/mm.h"
    },
    {
      "type": "modify",
      "old_id": "ec4a1a950df9eb60b71f2c12582ac3cde9d23fb9",
      "old_mode": 33188,
      "old_path": "mm/mempolicy.c",
      "new_id": "73e0f23b7f51e0b65d06c2e5033964eb4c41ef44",
      "new_mode": 33188,
      "new_path": "mm/mempolicy.c"
    },
    {
      "type": "modify",
      "old_id": "1c2a71aa05cd425a2863a1abc20f1ea6f7636085",
      "old_mode": 33188,
      "old_path": "mm/migrate.c",
      "new_id": "0576c053598803303beb6c0244ad06dffdef0f69",
      "new_mode": 33188,
      "new_path": "mm/migrate.c"
    }
  ]
}
