)]}'
{
  "commit": "5ab7e18e486540bd219cfe546232d432186f1452",
  "tree": "8669ac9e0d38c75df3cfc356379531a2a5168fd5",
  "parents": [
    "268cdaeaab024dbe179503ade7d5de8337d5c98f"
  ],
  "author": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Wed Oct 09 02:00:11 2024 -0400"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Sat Oct 19 20:57:37 2024 -0400"
  },
  "message": "struct filename: separate public and private parts\n\nALL pointers to struct filename should be either\n\t* ERR_PTR(...)\n\t* NULL\n\t* or address of -\u003epubic of some struct __filename instance.\n\nAll private members moved out of struct filename to containing\nstruct __filename (yes, including refcount).  Only two files\nhave any business accessing those - fs/filename.c itself and\nkernel/auditsc.c; the main reason for this series is to untangle\nthe incestous relationship between those.\n\nLet\u0027s start with making sure nobody else plays with that stuff;\nthis commit is just a brute-force way to do that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0c66098019f8eb5f7e149800e42bf68ea33ddfb6",
      "old_mode": 33188,
      "old_path": "fs/filename.c",
      "new_id": "294bc894c9cef7526969f56caa602ac69c22fa2b",
      "new_mode": 33188,
      "new_path": "fs/filename.c"
    },
    {
      "type": "modify",
      "old_id": "3bfef5ca8963a255ff4193f513bc1a7a6474b561",
      "old_mode": 33188,
      "old_path": "include/linux/filename.h",
      "new_id": "5c3bf634096f448010eec1629c71992de0d862d3",
      "new_mode": 33188,
      "new_path": "include/linux/filename.h"
    },
    {
      "type": "modify",
      "old_id": "073ea29b83824ceba5cacbf46b0b028c0e6129b4",
      "old_mode": 33188,
      "old_path": "kernel/auditsc.c",
      "new_id": "69a0193fab83140ab2b49a13d213cfa2893c01a9",
      "new_mode": 33188,
      "new_path": "kernel/auditsc.c"
    }
  ]
}
