)]}'
{
  "commit": "4a3fd211ccfc08a88edc824300e25a87785c6a5f",
  "tree": "99f1a76a99fa78464b8de731f7fdb5bcc9667a5e",
  "parents": [
    "42a74f206b914db13ee1f5ae932dcd91a77c8579"
  ],
  "author": {
    "name": "Dave Hansen",
    "email": "haveblue@us.ibm.com",
    "time": "Fri Feb 15 14:37:48 2008 -0800"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Sat Apr 19 00:29:25 2008 -0400"
  },
  "message": "[PATCH] r/o bind mounts: elevate write count for open()s\n\nThis is the first really tricky patch in the series.  It elevates the writer\ncount on a mount each time a non-special file is opened for write.\n\nWe used to do this in may_open(), but Miklos pointed out that __dentry_open()\nis used as well to create filps.  This will cover even those cases, while a\ncall in may_open() would not have.\n\nThere is also an elevated count around the vfs_create() call in open_namei().\nSee the comments for more details, but we need this to fix a \u0027create, remount,\nfail r/w open()\u0027 race.\n\nSome filesystems forego the use of normal vfs calls to create\nstruct files.   Make sure that these users elevate the mnt\nwriter count because they will get __fput(), and we need\nto make sure they\u0027re balanced.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3f73eb1f195a12638cf00fa276b39cd6eaa9f18e",
      "old_mode": 33188,
      "old_path": "fs/file_table.c",
      "new_id": "71efc7000226789e54d7d1dfb7874638ba619f81",
      "new_mode": 33188,
      "new_path": "fs/file_table.c"
    },
    {
      "type": "modify",
      "old_id": "83c843b3fea31fa8d95897cd6b4e9c85fe8aa288",
      "old_mode": 33188,
      "old_path": "fs/namei.c",
      "new_id": "e179f71bfcb058df613f83cb1ff923d47ffc4618",
      "new_mode": 33188,
      "new_path": "fs/namei.c"
    },
    {
      "type": "modify",
      "old_id": "8111947905d8ebe814a0f38fd17eb7ff6b4f4135",
      "old_mode": 33188,
      "old_path": "fs/open.c",
      "new_id": "e12f1701032428ae3dd8476043a0103bac2f385f",
      "new_mode": 33188,
      "new_path": "fs/open.c"
    },
    {
      "type": "modify",
      "old_id": "34262c11f48057a1bd2c48fc83c272c443f5a468",
      "old_mode": 33188,
      "old_path": "ipc/mqueue.c",
      "new_id": "94fd3b08fb77036d35ecd1a337785f1847fe1613",
      "new_mode": 33188,
      "new_path": "ipc/mqueue.c"
    }
  ]
}
