)]}'
{
  "commit": "f696a3659fc4b3a3bf4bc83d9dbec5e5a2ffd929",
  "tree": "738adf557608f26e881a710839de12b7527549b6",
  "parents": [
    "5cec56deb6d41b5b570306b17cd0b1590ebd0897"
  ],
  "author": {
    "name": "Miklos Szeredi",
    "email": "miklos@szeredi.hu",
    "time": "Thu Jul 31 13:41:58 2008 +0200"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Thu Oct 23 05:13:25 2008 -0400"
  },
  "message": "[PATCH] move executable checking into -\u003epermission()\n\nFor execute permission on a regular files we need to check if file has\nany execute bits at all, regardless of capabilites.\n\nThis check is normally performed by generic_permission() but was also\nadded to the case when the filesystem defines its own -\u003epermission()\nmethod.  In the latter case the filesystem should be responsible for\nperforming this check.\n\nMove the check from inode_permission() inside filesystems which are\nnot calling generic_permission().\n\nCreate a helper function execute_ok() that returns true if the inode\nis a directory or if any execute bits are present in i_mode.\n\nAlso fix up the following code:\n\n - coda control file is never executable\n - sysctl files are never executable\n - hfs_permission seems broken on MAY_EXEC, remove\n - hfsplus_permission is eqivalent to generic_permission(), remove\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "89c64a8dcb99a3568a58f9b6d2ed8266a0f8dec4",
      "old_mode": 33188,
      "old_path": "fs/cifs/cifsfs.c",
      "new_id": "84cc011a16e4d1afc90fe29d88ba2d1350902944",
      "new_mode": 33188,
      "new_path": "fs/cifs/cifsfs.c"
    },
    {
      "type": "modify",
      "old_id": "c5916228243c1516b2d62e6b06cea208523a09ac",
      "old_mode": 33188,
      "old_path": "fs/coda/dir.c",
      "new_id": "75b1fa90b2cb8ee205efc96bbbb8a7c71fc9a1e1",
      "new_mode": 33188,
      "new_path": "fs/coda/dir.c"
    },
    {
      "type": "modify",
      "old_id": "c51365422aa8da4311133c3b0ff773421efbc723",
      "old_mode": 33188,
      "old_path": "fs/coda/pioctl.c",
      "new_id": "773f2ce9aa068e48a865c677cf07c717d408777b",
      "new_mode": 33188,
      "new_path": "fs/coda/pioctl.c"
    },
    {
      "type": "modify",
      "old_id": "7e19835efa2ea91675980a18e963281a02d46bb8",
      "old_mode": 33188,
      "old_path": "fs/hfs/inode.c",
      "new_id": "c69b7ac75bf7d16bb53f6f1603e9a47019a2071b",
      "new_mode": 33188,
      "new_path": "fs/hfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "963be644297aeb45c2d376721c5cc70ee8ce28f5",
      "old_mode": 33188,
      "old_path": "fs/hfsplus/inode.c",
      "new_id": "b207f0e6fc22cec1feb87b127016f622b169656d",
      "new_mode": 33188,
      "new_path": "fs/hfsplus/inode.c"
    },
    {
      "type": "modify",
      "old_id": "9e2a534383d9f3c26780e4ae937d3b52df16cfc9",
      "old_mode": 33188,
      "old_path": "fs/namei.c",
      "new_id": "09ce58e49e72bb000004851a1ea23e958b0b917d",
      "new_mode": 33188,
      "new_path": "fs/namei.c"
    },
    {
      "type": "modify",
      "old_id": "c216c8786c511049f45738fdf5c3191118a26a8b",
      "old_mode": 33188,
      "old_path": "fs/nfs/dir.c",
      "new_id": "3e64b98f3a9337ab241624fc5a544425e7f05e45",
      "new_mode": 33188,
      "new_path": "fs/nfs/dir.c"
    },
    {
      "type": "modify",
      "old_id": "5fe210c091719d7d1cda43f8eac01617dd4aee8e",
      "old_mode": 33188,
      "old_path": "fs/proc/proc_sysctl.c",
      "new_id": "7b997754a25e705ddb41009b0741ddad3c3799a2",
      "new_mode": 33188,
      "new_path": "fs/proc/proc_sysctl.c"
    },
    {
      "type": "modify",
      "old_id": "5f70aa62cf0fda420db26919164cc67210740aa1",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "025a4a251b644a2e6d5ab51de382aed15953f787",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    }
  ]
}
