)]}'
{
  "commit": "e149ed2b805fefdccf7ccdfc19eca22fdd4514ac",
  "tree": "8c9cd88deff8c7309ca2acb8d4cb475aaca47b14",
  "parents": [
    "f77c80142e1afe6d5c16975ca5d7d1fc324b16f9"
  ],
  "author": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Sat Nov 01 10:57:28 2014 -0400"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Wed Dec 10 21:30:20 2014 -0500"
  },
  "message": "take the targets of /proc/*/ns/* symlinks to separate fs\n\nNew pseudo-filesystem: nsfs.  Targets of /proc/*/ns/* live there now.\nIt\u0027s not mountable (not even registered, so it\u0027s not in /proc/filesystems,\netc.).  Files on it *are* bindable - we explicitly permit that in do_loopback().\n\nThis stuff lives in fs/nsfs.c now; proc_ns_fget() moved there as well.\nget_proc_ns() is a macro now (it\u0027s simply returning -\u003ei_private; would\nhave been an inline, if not for header ordering headache).\nproc_ns_inode() is an ex-parrot.  The interface used in procfs is\nns_get_path(path, task, ops) and ns_get_name(buf, size, task, ops).\n\nDentries and inodes are never hashed; a non-counting reference to dentry\nis stashed in ns_common (removed by -\u003ed_prune()) and reused by ns_get_path()\nif present.  See ns_get_path()/ns_prune_dentry/nsfs_evict() for details\nof that mechanism.\n\nAs the result, proc_ns_follow_link() has stopped poking in nd-\u003epath.mnt;\nit does nd_jump_link() on a consistent \u003cvfsmount,dentry\u003e pair it gets\nfrom ns_get_path().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "34a1b9dea6dda9824eda07022cb544db83066eed",
      "old_mode": 33188,
      "old_path": "fs/Makefile",
      "new_id": "34393376eaa267202dc5b69814cff0478ea2df1d",
      "new_mode": 33188,
      "new_path": "fs/Makefile"
    },
    {
      "type": "modify",
      "old_id": "757ba2abf21e6c205867960d5fa2ee3b2f77d46f",
      "old_mode": 33188,
      "old_path": "fs/internal.h",
      "new_id": "e9a61fe67575fb7879cae3aeeb62dbb5b8a8aa93",
      "new_mode": 33188,
      "new_path": "fs/internal.h"
    },
    {
      "type": "modify",
      "old_id": "9dfb4cac0c41db8c6cdf833b130ccf70f494040f",
      "old_mode": 33188,
      "old_path": "fs/namespace.c",
      "new_id": "30df6e7dd80720ddb261c8f80d5e0f4df3e34e5d",
      "new_mode": 33188,
      "new_path": "fs/namespace.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af1b24fa899d0322fc8614960f9bfb13bcdd816e",
      "new_mode": 33188,
      "new_path": "fs/nsfs.c"
    },
    {
      "type": "modify",
      "old_id": "a212996e0987cfe1d1858a9741f53df96cec9c88",
      "old_mode": 33188,
      "old_path": "fs/proc/inode.c",
      "new_id": "57a9be9a66680db82b3f54e8055bf4f0d2c5c906",
      "new_mode": 33188,
      "new_path": "fs/proc/inode.c"
    },
    {
      "type": "modify",
      "old_id": "18fc1cf899de863e0711d82cd7f91e1367ed807c",
      "old_mode": 33188,
      "old_path": "fs/proc/namespaces.c",
      "new_id": "aaaac77abad0ae2f165f5bb0d8a0dd73b571e0ae",
      "new_mode": 33188,
      "new_path": "fs/proc/namespaces.c"
    },
    {
      "type": "modify",
      "old_id": "ce23cf4bbe6902d17e0a920de2e4a231e7176ee7",
      "old_mode": 33188,
      "old_path": "include/linux/ns_common.h",
      "new_id": "85a5c8c16be9a6cda644a09db8b43cd05a011871",
      "new_mode": 33188,
      "new_path": "include/linux/ns_common.h"
    },
    {
      "type": "modify",
      "old_id": "2837ff41cfe3998b98cacf6d8a7784db212ae422",
      "old_mode": 33188,
      "old_path": "include/linux/proc_ns.h",
      "new_id": "42dfc615dbf8381a2057cb9956cec957e9ca5b1b",
      "new_mode": 33188,
      "new_path": "include/linux/proc_ns.h"
    },
    {
      "type": "modify",
      "old_id": "77c60311a6c6224b66e7c35a712d1b113258e27d",
      "old_mode": 33188,
      "old_path": "include/uapi/linux/magic.h",
      "new_id": "7d664ea85ebd89a67d01851b9a0cbb4aa627d0ea",
      "new_mode": 33188,
      "new_path": "include/uapi/linux/magic.h"
    },
    {
      "type": "modify",
      "old_id": "800a0daede7e4d8b8940288bd30dfb43a6e922a8",
      "old_mode": 33188,
      "old_path": "init/main.c",
      "new_id": "bcc75057ea87ca4a580021ec0d3cae7fcac33a7d",
      "new_mode": 33188,
      "new_path": "init/main.c"
    }
  ]
}
