)]}'
{
  "commit": "a16877ca9cec211708a161057a7cbfbf2cbc3a53",
  "tree": "a114bfe588af58047b1eb2aa1f57ac4b890c01a6",
  "parents": [
    "98257af5a2ad0c5b502ebd07094d9fd8ce87acef"
  ],
  "author": {
    "name": "Pavel Emelyanov",
    "email": "xemul@openvz.org",
    "time": "Mon Oct 01 14:41:11 2007 -0700"
  },
  "committer": {
    "name": "J. Bruce Fields",
    "email": "bfields@citi.umich.edu",
    "time": "Tue Oct 09 18:32:46 2007 -0400"
  },
  "message": "Cleanup macros for distinguishing mandatory locks\n\nThe combination of S_ISGID bit set and S_IXGRP bit unset is used to mark the\ninode as \"mandatory lockable\" and there\u0027s a macro for this check called\nMANDATORY_LOCK(inode).  However, fs/locks.c and some filesystems still perform\nthe explicit i_mode checking.  Besides, Andrew pointed out, that this macro is\nbuggy itself, as it dereferences the inode arg twice.\n\nConvert this macro into static inline function and switch its users to it,\nmaking the code shorter and more readable.\n\nThe __mandatory_lock() helper is to be used in places where the IS_MANDLOCK()\nfor superblock is already known to be true.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "43dbc7f566fa97f829ae4e1448aa4a8fd5ba64df",
      "old_mode": 33188,
      "old_path": "fs/locks.c",
      "new_id": "9a3fe0d8285b178403aa76ce2d34358c7ec6c9d6",
      "new_mode": 33188,
      "new_path": "fs/locks.c"
    },
    {
      "type": "modify",
      "old_id": "3f559700788f1603a60840ce7bfc3b20e857fd48",
      "old_mode": 33188,
      "old_path": "fs/nfsd/nfs4state.c",
      "new_id": "3c028b9c6e0e8a29377749ce6fda99972e9122c3",
      "new_mode": 33188,
      "new_path": "fs/nfsd/nfs4state.c"
    },
    {
      "type": "modify",
      "old_id": "7867151ebb83b16c6c3bcd446acfead317ec282e",
      "old_mode": 33188,
      "old_path": "fs/nfsd/vfs.c",
      "new_id": "9152f87eea1896ca276c40cd741cd42f434c016f",
      "new_mode": 33188,
      "new_path": "fs/nfsd/vfs.c"
    },
    {
      "type": "modify",
      "old_id": "507ddff48a9a9e673d75d161d0fc8ad09c00faef",
      "old_mode": 33188,
      "old_path": "fs/read_write.c",
      "new_id": "124693e8d3fa068d60e7f6ad82670a3577ae80fb",
      "new_mode": 33188,
      "new_path": "fs/read_write.c"
    },
    {
      "type": "modify",
      "old_id": "16421f662a7ad6074e107a47f8d9be92ad185064",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "f5075e0e73016b7b7b224f48278079b30ebccecc",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    }
  ]
}
