)]}'
{
  "commit": "c45d15d24eb2b49bf734e1e5e7e103befb76b19b",
  "tree": "dd768c089fd3393e8fa2c4f4fb50cedb1044037d",
  "parents": [
    "49553c2ef88749dd502687f4eb9c258bb10a4f44"
  ],
  "author": {
    "name": "Arnd Bergmann",
    "email": "arnd@arndb.de",
    "time": "Wed Jun 02 14:28:52 2010 +0200"
  },
  "committer": {
    "name": "Arnd Bergmann",
    "email": "arnd@arndb.de",
    "time": "Wed Sep 15 21:00:45 2010 +0200"
  },
  "message": "scsi: autoconvert trivial BKL users to private mutex\n\nAll these files use the big kernel lock in a trivial\nway to serialize their private file operations,\ntypically resulting from an earlier semi-automatic\npushdown from VFS.\n\nNone of these drivers appears to want to lock against\nother code, and they all use the BKL as the top-level\nlock in their file operations, meaning that there\nis no lock-order inversion problem.\n\nConsequently, we can remove the BKL completely,\nreplacing it with a per-file mutex in every case.\nUsing a scripted approach means we can avoid\ntypos.\n\nfile\u003d$1\nname\u003d$2\nif grep -q lock_kernel ${file} ; then\n    if grep -q \u0027include.*linux.mutex.h\u0027 ${file} ; then\n            sed -i \u0027/include.*\u003clinux\\/smp_lock.h\u003e/d\u0027 ${file}\n    else\n            sed -i \u0027s/include.*\u003clinux\\/smp_lock.h\u003e.*$/include \u003clinux\\/mutex.h\u003e/g\u0027 ${file}\n    fi\n    sed -i ${file} \\\n        -e \"/^#include.*linux.mutex.h/,$ {\n                1,/^\\(static\\|int\\|long\\)/ {\n                     /^\\(static\\|int\\|long\\)/istatic DEFINE_MUTEX(${name}_mutex);\n\n} }\"  \\\n    -e \"s/\\(un\\)*lock_kernel\\\u003e[ ]*()/mutex_\\1lock(\\\u0026${name}_mutex)/g\" \\\n    -e \u0027/[      ]*cycle_kernel_lock();/d\u0027\nelse\n    sed -i -e \u0027/include.*\\\u003csmp_lock.h\\\u003e/d\u0027 ${file}  \\\n                -e \u0027/cycle_kernel_lock()/d\u0027\nfi\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: linux-scsi@vger.kernel.org\nCc: \"James E.J. Bottomley\" \u003cJames.Bottomley@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d8ddfdf8be14927c3e7a412355077b86ace48262",
      "old_mode": 33188,
      "old_path": "drivers/message/fusion/mptctl.c",
      "new_id": "a3856ed90aef7ce7c6953f2303581b03bddb3e3c",
      "new_mode": 33188,
      "new_path": "drivers/message/fusion/mptctl.c"
    },
    {
      "type": "modify",
      "old_id": "068ba0785bb4e1eaa3db77fcc0fd84bd7cbd6f67",
      "old_mode": 33188,
      "old_path": "drivers/message/i2o/i2o_config.c",
      "new_id": "7d3cc575c36167a436b43052b11942b3e0f80ac7",
      "new_mode": 33188,
      "new_path": "drivers/message/i2o/i2o_config.c"
    },
    {
      "type": "modify",
      "old_id": "e20b7bdd4c78e2409fc2783ad38e3fbb10e62e55",
      "old_mode": 33188,
      "old_path": "drivers/scsi/3w-9xxx.c",
      "new_id": "09a139f61ca4cf1aed924e08b84cf3ecb8f84c56",
      "new_mode": 33188,
      "new_path": "drivers/scsi/3w-9xxx.c"
    },
    {
      "type": "modify",
      "old_id": "f481e734aad488f762bf16e3289f72ec42105508",
      "old_mode": 33188,
      "old_path": "drivers/scsi/3w-sas.c",
      "new_id": "7e5f2385e3e6bfad8b19301288bb4185b1169c68",
      "new_mode": 33188,
      "new_path": "drivers/scsi/3w-sas.c"
    },
    {
      "type": "modify",
      "old_id": "30d735ad35b5ee9a4909c686be1b6b7d0172a559",
      "old_mode": 33188,
      "old_path": "drivers/scsi/3w-xxxx.c",
      "new_id": "081c864c11d27bd3df7019ae313c25c52926ba34",
      "new_mode": 33188,
      "new_path": "drivers/scsi/3w-xxxx.c"
    },
    {
      "type": "modify",
      "old_id": "cad6f9abaeb9cc274ae61ce006788ca236eae4cc",
      "old_mode": 33188,
      "old_path": "drivers/scsi/aacraid/linit.c",
      "new_id": "6e233362dd7b455bda776cbb32d802e43d8b83b1",
      "new_mode": 33188,
      "new_path": "drivers/scsi/aacraid/linit.c"
    },
    {
      "type": "modify",
      "old_id": "d6532187f616fefe0095ae11e071abaaddbb79b4",
      "old_mode": 33188,
      "old_path": "drivers/scsi/ch.c",
      "new_id": "e805c8fda23930938ed4f7c123ca707d97a2dc29",
      "new_mode": 33188,
      "new_path": "drivers/scsi/ch.c"
    },
    {
      "type": "modify",
      "old_id": "ffc1edf5e80da4bb9158caa312a395029539a29c",
      "old_mode": 33188,
      "old_path": "drivers/scsi/dpt_i2o.c",
      "new_id": "410ac1def8a6650f21ab331276c9c3940905b6f6",
      "new_mode": 33188,
      "new_path": "drivers/scsi/dpt_i2o.c"
    },
    {
      "type": "modify",
      "old_id": "b860d650a563dfd6689815bce2e908c474181610",
      "old_mode": 33188,
      "old_path": "drivers/scsi/gdth.c",
      "new_id": "e927607bbf89ce2b3f0ae4e344160f0b96dfd655",
      "new_mode": 33188,
      "new_path": "drivers/scsi/gdth.c"
    },
    {
      "type": "modify",
      "old_id": "0b6e3228610ae08371ec9189ae95511b20e186d4",
      "old_mode": 33188,
      "old_path": "drivers/scsi/megaraid.c",
      "new_id": "4d0cf5cd82cc42602552b70f90549be640109aa9",
      "new_mode": 33188,
      "new_path": "drivers/scsi/megaraid.c"
    },
    {
      "type": "modify",
      "old_id": "41f82f76d8845ad92b7bfa765936ca513f325dee",
      "old_mode": 33188,
      "old_path": "drivers/scsi/megaraid/megaraid_mm.c",
      "new_id": "42770a1e7b8a0c2b56e218675dfae6606b42308c",
      "new_mode": 33188,
      "new_path": "drivers/scsi/megaraid/megaraid_mm.c"
    },
    {
      "type": "modify",
      "old_id": "99e4478c3f3ed4efc8d018ee2cc5f3b98d941514",
      "old_mode": 33188,
      "old_path": "drivers/scsi/megaraid/megaraid_sas.c",
      "new_id": "c4a595d8d23a3cfe78412a70e8c0cc186fb3da8c",
      "new_mode": 33188,
      "new_path": "drivers/scsi/megaraid/megaraid_sas.c"
    },
    {
      "type": "modify",
      "old_id": "b774973f07658a3346fa10239846ee74fc3783cf",
      "old_mode": 33188,
      "old_path": "drivers/scsi/mpt2sas/mpt2sas_ctl.c",
      "new_id": "31cf126ed4409fecca997919989d46f2d07359bf",
      "new_mode": 33188,
      "new_path": "drivers/scsi/mpt2sas/mpt2sas_ctl.c"
    },
    {
      "type": "modify",
      "old_id": "278b352ae78d0bdc6d5609f7d62bfc9893111a00",
      "old_mode": 33188,
      "old_path": "drivers/scsi/osst.c",
      "new_id": "54de1d1af1a7377d9b0fba6e20753f0fd6854908",
      "new_mode": 33188,
      "new_path": "drivers/scsi/osst.c"
    },
    {
      "type": "modify",
      "old_id": "a87e21c35ef269ecae82f68e49ee235dd3d0eced",
      "old_mode": 33188,
      "old_path": "drivers/scsi/scsi_tgt_if.c",
      "new_id": "02034460babbcfc8644c1589f7bd8607dc079069",
      "new_mode": 33188,
      "new_path": "drivers/scsi/scsi_tgt_if.c"
    },
    {
      "type": "modify",
      "old_id": "78d616315d8e18e1de032cc895d65801ef81a54a",
      "old_mode": 33188,
      "old_path": "drivers/scsi/sg.c",
      "new_id": "b5507d59b5a62d17cdedf44f548f0ec5104b42f3",
      "new_mode": 33188,
      "new_path": "drivers/scsi/sg.c"
    }
  ]
}
