)]}'
{
  "commit": "bda0be7ad994812960e9f8f2d2757f72cb4a96cb",
  "tree": "f769e7c4511b64432438f82a8426248e75a8ad7b",
  "parents": [
    "7b20ea2579238f5e0da4bc93276c1b63c960c9ef"
  ],
  "author": {
    "name": "NeilBrown",
    "email": "neilb@suse.de",
    "time": "Mon Mar 23 13:37:39 2015 +1100"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Mon May 11 08:13:11 2015 -0400"
  },
  "message": "security: make inode_follow_link RCU-walk aware\n\ninode_follow_link now takes an inode and rcu flag as well as the\ndentry.\n\ninode is used in preference to d_backing_inode(dentry), particularly\nin RCU-walk mode.\n\nselinux_inode_follow_link() gets dentry_has_perm() and\ninode_has_perm() open-coded into it so that it can call\navc_has_perm_flags() in way that is safe if LOOKUP_RCU is set.\n\nCalling avc_has_perm_flags() with rcu_read_lock() held means\nthat when avc_has_perm_noaudit calls avc_compute_av(), the attempt\nto rcu_read_unlock() before calling security_compute_av() will not\nactually drop the RCU read-lock.\n\nHowever as security_compute_av() is completely in a read_lock()ed\nregion, it should be safe with the RCU read-lock held.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "33b655de0ec045486cf2add53a75eb91361f0c9d",
      "old_mode": 33188,
      "old_path": "fs/namei.c",
      "new_id": "0fa7af23cff6dbd8d6687a43d06bc13ae0766ad0",
      "new_mode": 33188,
      "new_path": "fs/namei.c"
    },
    {
      "type": "modify",
      "old_id": "62a66202ecf1bda3d155e3950abbf904e0e2604b",
      "old_mode": 33188,
      "old_path": "include/linux/security.h",
      "new_id": "52febde524794f5b0201ceba920c4c695edcf8e3",
      "new_mode": 33188,
      "new_path": "include/linux/security.h"
    },
    {
      "type": "modify",
      "old_id": "fae99db180caad3457e26c6c50a5238e5f36e0f9",
      "old_mode": 33188,
      "old_path": "security/capability.c",
      "new_id": "7d3f38fe02ba6ca7d75446c6d20e41c049b17b00",
      "new_mode": 33188,
      "new_path": "security/capability.c"
    },
    {
      "type": "modify",
      "old_id": "d7c30b03e144ce02fd221b402eba7dd256573ec0",
      "old_mode": 33188,
      "old_path": "security/security.c",
      "new_id": "04c8feca081a3bafc8dde4f95ebc44badda4e5a5",
      "new_mode": 33188,
      "new_path": "security/security.c"
    },
    {
      "type": "modify",
      "old_id": "d56a82967d5e09eb5e35190d0bcb0befd63885b0",
      "old_mode": 33188,
      "old_path": "security/selinux/hooks.c",
      "new_id": "ffa5a642629a1cbf16467f7bc0ebd3b20cdf02f0",
      "new_mode": 33188,
      "new_path": "security/selinux/hooks.c"
    }
  ]
}
