)]}'
{
  "commit": "993dfa8776308dcfd311cf77a3bbed4aa11e9868",
  "tree": "2e90eabd31d3e8db1f2f3c95494109ff29a78237",
  "parents": [
    "7a2bd3f7efa86e8b56482a8f8948c8b222064a67"
  ],
  "author": {
    "name": "Trond Myklebust",
    "email": "Trond.Myklebust@netapp.com",
    "time": "Fri Mar 31 02:30:55 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Fri Mar 31 12:18:56 2006 -0800"
  },
  "message": "[PATCH] fs/locks.c: Fix sys_flock() race\n\nsys_flock() currently has a race which can result in a double free in the\nmulti-thread case.\n\nThread 1\t\t\tThread 2\n\nsys_flock(file, LOCK_EX)\n\t\t\t\tsys_flock(file, LOCK_UN)\n\nIf Thread 2 removes the lock from inode-\u003ei_lock before Thread 1 tests for\nlist_empty(\u0026lock-\u003efl_link) at the end of sys_flock, then both threads will\nend up calling locks_free_lock for the same lock.\n\nFix is to make flock_lock_file() do the same as posix_lock_file(), namely\nto make a copy of the request, so that the caller can always free the lock.\n\nThis also has the side-effect of fixing up a reference problem in the\nlockd handling of flock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8fcfeb177a2ac89f5971ced7e2da7d2b726637f8",
      "old_mode": 33188,
      "old_path": "fs/locks.c",
      "new_id": "dda83d6cd48b17934797de3f6c9f65c52662f859",
      "new_mode": 33188,
      "new_path": "fs/locks.c"
    }
  ]
}
