)]}'
{
  "commit": "4e6045f134784f4b158b3c0f7a282b04bd816887",
  "tree": "3304628f666c8524accd10f40da48cfba8b08608",
  "parents": [
    "cf7b708c8d1d7a27736771bcf4c457b332b0f818"
  ],
  "author": {
    "name": "Johannes Berg",
    "email": "johannes@sipsolutions.net",
    "time": "Thu Oct 18 23:39:55 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Fri Oct 19 11:53:38 2007 -0700"
  },
  "message": "workqueue: debug flushing deadlocks with lockdep\n\nIn the following scenario:\n\ncode path 1:\n  my_function() -\u003e lock(L1); ...; flush_workqueue(); ...\n\ncode path 2:\n  run_workqueue() -\u003e my_work() -\u003e ...; lock(L1); ...\n\nyou can get a deadlock when my_work() is queued or running\nbut my_function() has acquired L1 already.\n\nThis patch adds a pseudo-lock to each workqueue to make lockdep\nwarn about this scenario.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f6279f68a8270c143196c1c0c09afbea2cff02be",
      "old_mode": 33188,
      "old_path": "include/linux/lockdep.h",
      "new_id": "4c4d236ded1885415066c774877abc9fc39592f7",
      "new_mode": 33188,
      "new_path": "include/linux/lockdep.h"
    },
    {
      "type": "modify",
      "old_id": "ce6badc98f6dcb3f2b78615cd4aa382d6d956abd",
      "old_mode": 33188,
      "old_path": "include/linux/workqueue.h",
      "new_id": "7daafdc2514b9657a0e0d9d0325785cc65c934b2",
      "new_mode": 33188,
      "new_path": "include/linux/workqueue.h"
    },
    {
      "type": "modify",
      "old_id": "a6f1ee9c92d9fb7900ae02e44debe938a293aedb",
      "old_mode": 33188,
      "old_path": "kernel/lockdep.c",
      "new_id": "b5392ff7e6a660f2698811e58d70defd8eb5b6c0",
      "new_mode": 33188,
      "new_path": "kernel/lockdep.c"
    },
    {
      "type": "modify",
      "old_id": "e080d1d744cce242b587664445888fa23eeb0b9a",
      "old_mode": 33188,
      "old_path": "kernel/workqueue.c",
      "new_id": "d1916fea710842719333d2fba32c4680a780c9f7",
      "new_mode": 33188,
      "new_path": "kernel/workqueue.c"
    }
  ]
}
