)]}'
{
  "commit": "83d5e5b0af907d46d241a86d9e44003b3f0accbd",
  "tree": "46349d07c2090da15c250af3bac40833eb96e9f0",
  "parents": [
    "2480945cd44b50ba8b1646544eec2db21f064f12"
  ],
  "author": {
    "name": "Mikulas Patocka",
    "email": "mpatocka@redhat.com",
    "time": "Wed Jul 10 23:41:18 2013 +0100"
  },
  "committer": {
    "name": "Alasdair G Kergon",
    "email": "agk@redhat.com",
    "time": "Wed Jul 10 23:41:18 2013 +0100"
  },
  "message": "dm: optimize use SRCU and RCU\n\nThis patch removes \"io_lock\" and \"map_lock\" in struct mapped_device and\n\"holders\" in struct dm_table and replaces these mechanisms with\nsleepable-rcu.\n\nPreviously, the code would call \"dm_get_live_table\" and \"dm_table_put\" to\nget and release table. Now, the code is changed to call \"dm_get_live_table\"\nand \"dm_put_live_table\". dm_get_live_table locks sleepable-rcu and\ndm_put_live_table unlocks it.\n\ndm_get_live_table_fast/dm_put_live_table_fast can be used instead of\ndm_get_live_table/dm_put_live_table. These *_fast functions use\nnon-sleepable RCU, so the caller must not block between them.\n\nIf the code changes active or inactive dm table, it must call\ndm_sync_table before destroying the old table.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "12f04868e8999a73ecc04cdf6775fcc6765073ec",
      "old_mode": 33188,
      "old_path": "drivers/md/dm-ioctl.c",
      "new_id": "f1b758675ec77e2e2c0d16246e2ba772fff01476",
      "new_mode": 33188,
      "new_path": "drivers/md/dm-ioctl.c"
    },
    {
      "type": "modify",
      "old_id": "1ff252ab7d46a1ed55fb98a93426acfb764998dd",
      "old_mode": 33188,
      "old_path": "drivers/md/dm-table.c",
      "new_id": "f221812b7dbcf0d3bae7c5171fe9e184c781d7d7",
      "new_mode": 33188,
      "new_path": "drivers/md/dm-table.c"
    },
    {
      "type": "modify",
      "old_id": "33f20103d8d566d4a2dbb556acd22fcbd7b628f7",
      "old_mode": 33188,
      "old_path": "drivers/md/dm.c",
      "new_id": "ecff83f5b53a0c2653fa7b1006de370d483fb5ed",
      "new_mode": 33188,
      "new_path": "drivers/md/dm.c"
    },
    {
      "type": "modify",
      "old_id": "3cd32478f2fd095817c7fb0b9f6558d336020bde",
      "old_mode": 33188,
      "old_path": "include/linux/device-mapper.h",
      "new_id": "e151d4c9298d858eca5a3ccd5594da1aebe20596",
      "new_mode": 33188,
      "new_path": "include/linux/device-mapper.h"
    },
    {
      "type": "modify",
      "old_id": "7e75b6fd8d458f06550198a3341e8fc03af9a4aa",
      "old_mode": 33188,
      "old_path": "include/uapi/linux/dm-ioctl.h",
      "new_id": "afd0cbd52edb62b501bbbe4225338af6b9dc95f0",
      "new_mode": 33188,
      "new_path": "include/uapi/linux/dm-ioctl.h"
    }
  ]
}
