)]}'
{
  "commit": "f313c51d26aa87e69633c9b46efb37a930faca71",
  "tree": "8ac66781cc4d52e784a4b0ff9b46b008c4c928cd",
  "parents": [
    "f440fa1ac955e2898893f9301568435eb5cdfc4b"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon Jun 19 11:34:15 2023 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sat Jun 24 14:13:55 2023 -0700"
  },
  "message": "execve: expand new process stack manually ahead of time\n\nThis is a small step towards a model where GUP itself would not expand\nthe stack, and any user that needs GUP to not look up existing mappings,\nbut actually expand on them, would have to do so manually before-hand,\nand with the mm lock held for writing.\n\nIt turns out that execve() already did almost exactly that, except it\ndidn\u0027t take the mm lock at all (it\u0027s single-threaded so no locking\ntechnically needed, but it could cause lockdep errors).  And it only did\nit for the CONFIG_STACK_GROWSUP case, since in that case GUP has\nobviously never expanded the stack downwards.\n\nSo just make that CONFIG_STACK_GROWSUP case do the right thing with\nlocking, and enable it generally.  This will eventually help GUP, and in\nthe meantime avoids a special case and the lockdep issue.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a61eb256e5e4ce807423bf39757a088fe1e7f62e",
      "old_mode": 33188,
      "old_path": "fs/exec.c",
      "new_id": "66e3e22ffb8a61c53e426264fb717f7ec4941ea6",
      "new_mode": 33188,
      "new_path": "fs/exec.c"
    }
  ]
}
