)]}'
{
  "commit": "975b297947c85a1cb687d7561b6fc05d48160026",
  "tree": "e72ba4a70a1d532c5eff3764f4481485313721a6",
  "parents": [
    "77fede5137574813e415a4cf23038b6688ba2470"
  ],
  "author": {
    "name": "Philipp Reisner",
    "email": "philipp.reisner@linbit.com",
    "time": "Thu Nov 17 10:11:47 2011 +0100"
  },
  "committer": {
    "name": "Philipp Reisner",
    "email": "philipp.reisner@linbit.com",
    "time": "Thu Nov 08 16:58:09 2012 +0100"
  },
  "message": "drbd: fix potential spinlock deadlock\n\ndrbd_try_clear_on_disk_bm() has a sanity check for the number of blocks\nleft to be resynced (rs_left) in the current resync extent.\nIf it detects a mismatch, it complains, and forces a disconnect using\ndrbd_force_state(mdev, NS(conn, C_DISCONNECTING));\n\nUnfortunately, this may be called while holding the req_lock,\nand drbd_force_state() want\u0027s to aquire that lock itself. Deadlock.\n\nDon\u0027t force a disconnect, but fix up rs_left by recounting and\nreassigning the number of dirty blocks in that extent.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ade79be4e27a61d7d44711f6a30187c187b3a3cc",
      "old_mode": 33188,
      "old_path": "drivers/block/drbd/drbd_actlog.c",
      "new_id": "d69fb7d6181769c5e7159906ae105e4286563421",
      "new_mode": 33188,
      "new_path": "drivers/block/drbd/drbd_actlog.c"
    }
  ]
}
