)]}'
{
  "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
  "tree": "a006d078aa02e421a7dc4793c335308204859d36",
  "parents": [
    "4327edf6b8a7ac7dce144313947995538842d8fd"
  ],
  "author": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Sat Sep 10 00:25:56 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sat Sep 10 10:06:21 2005 -0700"
  },
  "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\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": "fc5ef90c4fc95863653860190f76dc92a647616a",
      "old_mode": 33188,
      "old_path": "arch/alpha/kernel/alpha_ksyms.c",
      "new_id": "24ae9a3660737767db4ca7f4b1a7da997703bd76",
      "new_mode": 33188,
      "new_path": "arch/alpha/kernel/alpha_ksyms.c"
    },
    {
      "type": "modify",
      "old_id": "e211aa7404e6152c4668277fdc03872547d8fab1",
      "old_mode": 33188,
      "old_path": "arch/alpha/kernel/smp.c",
      "new_id": "da0be34657915beec4cab3beeb15af6d33e0956c",
      "new_mode": 33188,
      "new_path": "arch/alpha/kernel/smp.c"
    },
    {
      "type": "modify",
      "old_id": "4ebbf3974381af2b7669c98c198d670c8e460fa7",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/mca.c",
      "new_id": "8d484204a3ff670cd97b7946d766ed877208eeff",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/mca.c"
    },
    {
      "type": "modify",
      "old_id": "48b187f2d2b350d5cd5da50ba71e1a9b8664a8c6",
      "old_mode": 33188,
      "old_path": "arch/m32r/kernel/smp.c",
      "new_id": "a4576ac7e8702c27e787f8f0c7d87d0c61285f26",
      "new_mode": 33188,
      "new_path": "arch/m32r/kernel/smp.c"
    },
    {
      "type": "modify",
      "old_id": "e44e9579bd36dcce1f2f1a80e5594f95788612e4",
      "old_mode": 33188,
      "old_path": "arch/mips/lib/dec_and_lock.c",
      "new_id": "fd82c84a93b726d318411fe8c0967c71b12e8c50",
      "new_mode": 33188,
      "new_path": "arch/mips/lib/dec_and_lock.c"
    },
    {
      "type": "modify",
      "old_id": "7bf705676297a424af3f35dda2787224bce46f7c",
      "old_mode": 33188,
      "old_path": "arch/parisc/lib/Makefile",
      "new_id": "5f2e6904d14aecb897773538b1eadd001fde93f5",
      "new_mode": 33188,
      "new_path": "arch/parisc/lib/Makefile"
    },
    {
      "type": "modify",
      "old_id": "2de182f6fe8a9eb2077404de6ed71bd65d00010a",
      "old_mode": 33188,
      "old_path": "arch/parisc/lib/bitops.c",
      "new_id": "90f400b10282276b12eb5fba16ea14c6c61ff449",
      "new_mode": 33188,
      "new_path": "arch/parisc/lib/bitops.c"
    },
    {
      "type": "delete",
      "old_id": "1b33fe6e5b7a145331d960c0d0181c0e384d9fe1",
      "old_mode": 33188,
      "old_path": "arch/parisc/lib/debuglocks.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "1c380e67d4357389e29429af3b6e4f3f77f8f935",
      "old_mode": 33188,
      "old_path": "arch/ppc/lib/Makefile",
      "new_id": "f1e1fb4144f034a9be9197cffab83570efa9790d",
      "new_mode": 33188,
      "new_path": "arch/ppc/lib/Makefile"
    },
    {
      "type": "modify",
      "old_id": "4ee888070d914618ebdc8cc6abcd3dc7e8530351",
      "old_mode": 33188,
      "old_path": "arch/ppc/lib/dec_and_lock.c",
      "new_id": "b18f0d9a00fc70a8225260af62df6492b1f948c8",
      "new_mode": 33188,
      "new_path": "arch/ppc/lib/dec_and_lock.c"
    },
    {
      "type": "modify",
      "old_id": "6e8d8591708cbbc37e7a9dfe8fd9911774899705",
      "old_mode": 33188,
      "old_path": "arch/ppc64/lib/dec_and_lock.c",
      "new_id": "7b9d4da5cf926e12ff1c9811242af1bc7f899662",
      "new_mode": 33188,
      "new_path": "arch/ppc64/lib/dec_and_lock.c"
    },
    {
      "type": "modify",
      "old_id": "ef70ef91abe26dfc9d21606a34f80d3d5f428892",
      "old_mode": 33188,
      "old_path": "arch/ppc64/lib/locks.c",
      "new_id": "033643ab69e0bfac4903c4544fbfc52f70ba8972",
      "new_mode": 33188,
      "new_path": "arch/ppc64/lib/locks.c"
    },
    {
      "type": "modify",
      "old_id": "888b5596c195d5123a24b60099b46f2c6f3634aa",
      "old_mode": 33188,
      "old_path": "arch/s390/lib/spinlock.c",
      "new_id": "2dc14e9c83276818f95afa4d054e1f836fec4774",
      "new_mode": 33188,
      "new_path": "arch/s390/lib/spinlock.c"
    },
    {
      "type": "modify",
      "old_id": "5d974a2b735a9ac354295ec6e4870cfb85049e12",
      "old_mode": 33188,
      "old_path": "arch/sparc/kernel/sparc_ksyms.c",
      "new_id": "f84809333624aae07d323e3b1577bc0ce5ddfb74",
      "new_mode": 33188,
      "new_path": "arch/sparc/kernel/sparc_ksyms.c"
    },
    {
      "type": "modify",
      "old_id": "2296ff9dc47aa67c1af4c90a160317621aa59a35",
      "old_mode": 33188,
      "old_path": "arch/sparc/lib/Makefile",
      "new_id": "fa5006946062134462f64f553d58d94f142f7501",
      "new_mode": 33188,
      "new_path": "arch/sparc/lib/Makefile"
    },
    {
      "type": "delete",
      "old_id": "fb182352782c57fb344a1860a518bc72a2ca3e12",
      "old_mode": 33188,
      "old_path": "arch/sparc/lib/debuglocks.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "66255434128a2e6ebf6b144d5d030003fe4ebaca",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/process.c",
      "new_id": "7d10b03970919c63b6d1c1dd138b203f6fa42568",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/process.c"
    },
    {
      "type": "modify",
      "old_id": "7d9a0f6c437dcc60dba88b30afe33af1dafcc550",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/sparc64_ksyms.c",
      "new_id": "cbb5e59824e569f68757dc220baed881159b9b54",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/sparc64_ksyms.c"
    },
    {
      "type": "modify",
      "old_id": "40dbeec7e5d6a8ed75006dd2873e0d40e019b29e",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/Makefile",
      "new_id": "d968aebe83b282319fefb194dd942b3614a67764",
      "new_mode": 33188,
      "new_path": "arch/sparc64/lib/Makefile"
    },
    {
      "type": "delete",
      "old_id": "f5f0b5586f01a76ca110d4c04aec77c2be7d2931",
      "old_mode": 33188,
      "old_path": "arch/sparc64/lib/debuglocks.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "1c62203a4906ec1c7ba2ca9ede00e2a2c498aeda",
      "old_mode": 33188,
      "old_path": "fs/buffer.c",
      "new_id": "6cbfceabd95d78451fd16f053c6ed1b79872fbda",
      "new_mode": 33188,
      "new_path": "fs/buffer.c"
    },
    {
      "type": "modify",
      "old_id": "80780dba9986fb47b78c204e5c23ab6b77a2fddf",
      "old_mode": 33188,
      "old_path": "include/asm-alpha/spinlock.h",
      "new_id": "8197c69eff44cdbebed4823db0bfdf0c1a2428fd",
      "new_mode": 33188,
      "new_path": "include/asm-alpha/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8141eb5ebf0d207705f74a29364aec095339864d",
      "new_mode": 33188,
      "new_path": "include/asm-alpha/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "1f906d09b6880f2ac04e9bb0dedf3dd0eafdafee",
      "old_mode": 33188,
      "old_path": "include/asm-arm/spinlock.h",
      "new_id": "cb4906b4555583d36c0b3b91f94d2d9d9a4724c4",
      "new_mode": 33188,
      "new_path": "include/asm-arm/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43e83f6d2ee5321e5ee08ddb1ef2b8dfb5904c1a",
      "new_mode": 33188,
      "new_path": "include/asm-arm/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "f9ff31f400369f0e1429f72829d95f6738e7a129",
      "old_mode": 33188,
      "old_path": "include/asm-i386/spinlock.h",
      "new_id": "23604350cdf45e25df90180afa2985f9b489dfd1",
      "new_mode": 33188,
      "new_path": "include/asm-i386/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "59efe849f351f0bc556b73e1f54dcfec1d09463a",
      "new_mode": 33188,
      "new_path": "include/asm-i386/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "d2430aa0d49db76db4b6c771bc1eb9a9bc402d36",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/spinlock.h",
      "new_id": "5b78611411c30e244a650b230aaae7c62ec5a6e9",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "474e46f1ab4a0a19527ecb2b2a32b05d520a1400",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "6608d8371c5084541c2d84cb95e0f1df12eeb8f8",
      "old_mode": 33188,
      "old_path": "include/asm-m32r/spinlock.h",
      "new_id": "7de7def28da97c651ef7aaebed4271905663e038",
      "new_mode": 33188,
      "new_path": "include/asm-m32r/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e9941c45f4022e6ce30107de393a08e58c1eb92",
      "new_mode": 33188,
      "new_path": "include/asm-m32r/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "114d3eb98a6aa39fc4ad01a46c4ab6aa6c3650ab",
      "old_mode": 33188,
      "old_path": "include/asm-mips/spinlock.h",
      "new_id": "4d0135b111567e5e59956a3bd30bf7b58f86debe",
      "new_mode": 33188,
      "new_path": "include/asm-mips/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce26c5048b154db213af70d8601e9926ccb14096",
      "new_mode": 33188,
      "new_path": "include/asm-mips/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "e24f7579adb0d70dd4024f81883d2a4ada961c9a",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/atomic.h",
      "new_id": "048a2c7fd0c0a54530fdabb5350915652fa1e2c0",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/atomic.h"
    },
    {
      "type": "modify",
      "old_id": "928e5ef850bd2a3fb8cbc2fec71305069ec57db9",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/bitops.h",
      "new_id": "af7db694b22d3b9a0827828cd3a15128f9233b35",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/bitops.h"
    },
    {
      "type": "modify",
      "old_id": "06732719d927f7d2a5d71151d9245ccda79bccba",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/cacheflush.h",
      "new_id": "aa592d8c0e396247f759df4a382511819a70750b",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/cacheflush.h"
    },
    {
      "type": "modify",
      "old_id": "0b61f51d84670a7c37dfd916950e9c831389a782",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/processor.h",
      "new_id": "a9dfadd05658e7a548c73318385c73b791999593",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/processor.h"
    },
    {
      "type": "modify",
      "old_id": "679ea1c651efed3f0fa9f35639c5a56c6b899194",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/spinlock.h",
      "new_id": "43eaa6e742e06f3a1f77dffca9d6eccf61fa29d4",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "785bba822fbfac0429c9f58876f12fc8f18f8474",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "81c543339036cb1f31df3b41863b3e7c9157fa3e",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/system.h",
      "new_id": "26ff844a21c18a36eed14cccdb951e68d8411187",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/system.h"
    },
    {
      "type": "modify",
      "old_id": "909199aae1047f2baf6934e384bd0918eb3f855e",
      "old_mode": 33188,
      "old_path": "include/asm-ppc/spinlock.h",
      "new_id": "20edcf2a6e0ce47eddfb7b213f62e06304c5a093",
      "new_mode": 33188,
      "new_path": "include/asm-ppc/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7919ccc75b8a06b266ba8ed537d4e1d744016d7f",
      "new_mode": 33188,
      "new_path": "include/asm-ppc/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "acd11564dd752d64a8e29951e3beb55eee0f09c4",
      "old_mode": 33188,
      "old_path": "include/asm-ppc64/spinlock.h",
      "new_id": "14cb895bb607245477e4dc466e7dd6a227491956",
      "new_mode": 33188,
      "new_path": "include/asm-ppc64/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a37c8eabb9f290103c704e68da0584119356931f",
      "new_mode": 33188,
      "new_path": "include/asm-ppc64/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "321b23bba1ecf16987b724e45f79319f55972159",
      "old_mode": 33188,
      "old_path": "include/asm-s390/spinlock.h",
      "new_id": "273dbecf8acef0465060133bbac01bab72118fc5",
      "new_mode": 33188,
      "new_path": "include/asm-s390/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f79a2216204f523bac490f3d0009dd01a33b307f",
      "new_mode": 33188,
      "new_path": "include/asm-s390/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "e770b55649ebb88f0838e1b760844630f1cbf141",
      "old_mode": 33188,
      "old_path": "include/asm-sh/spinlock.h",
      "new_id": "846322d4c35d489daf86e337518dbee79f5c738f",
      "new_mode": 33188,
      "new_path": "include/asm-sh/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8c41b6c3aac87adc4fbd73d5320b95e7592c6b18",
      "new_mode": 33188,
      "new_path": "include/asm-sh/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "0cbd87ad491280e620acbbfde7280d21ca1b367e",
      "old_mode": 33188,
      "old_path": "include/asm-sparc/spinlock.h",
      "new_id": "111727a2bb4e4f173b89434ddba3f4f00f191c91",
      "new_mode": 33188,
      "new_path": "include/asm-sparc/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a0fb116c4ec360ea736f4029a8bdea9450d71fa",
      "new_mode": 33188,
      "new_path": "include/asm-sparc/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "a02c4370eb42e0d1c8f6043a25f900e0ea03ff2c",
      "old_mode": 33188,
      "old_path": "include/asm-sparc64/spinlock.h",
      "new_id": "ec85d12d73b98a353e0fdcaf346489b09f80839a",
      "new_mode": 33188,
      "new_path": "include/asm-sparc64/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e128112a0d7c811fe1e2b131249ec4f627e95aff",
      "new_mode": 33188,
      "new_path": "include/asm-sparc64/spinlock_types.h"
    },
    {
      "type": "modify",
      "old_id": "5aeb57a3baad30b7111aa28cc6149cf891394bd5",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/spinlock.h",
      "new_id": "69636831ad2f4e3f5d756ab4bbec60da5bfd18f9",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "59efe849f351f0bc556b73e1f54dcfec1d09463a",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/spinlock_types.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6b20af0bbb79d2037cfb3c5aa69d6b3cac2f2e59",
      "new_mode": 33188,
      "new_path": "include/linux/bit_spinlock.h"
    },
    {
      "type": "modify",
      "old_id": "84321a4cac93a1e942a4df994f28dbf44aeeec86",
      "old_mode": 33188,
      "old_path": "include/linux/jbd.h",
      "new_id": "de097269bd7f00596f6da5059876e6d7305c1c56",
      "new_mode": 33188,
      "new_path": "include/linux/jbd.h"
    },
    {
      "type": "modify",
      "old_id": "d6ba068719b61bf4a035e4d6e297694b65941442",
      "old_mode": 33188,
      "old_path": "include/linux/spinlock.h",
      "new_id": "cdc99a27840d6433cabf5d7a6c5bfa6e43198215",
      "new_mode": 33188,
      "new_path": "include/linux/spinlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "78e6989ffb542e75b54cc9e8dda12c230ab15e36",
      "new_mode": 33188,
      "new_path": "include/linux/spinlock_api_smp.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cd81cee566f4abc642f3650f13b9f66aa90ccc3e",
      "new_mode": 33188,
      "new_path": "include/linux/spinlock_api_up.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9cb51e0703909ccaaea60108349f11366c6284d5",
      "new_mode": 33188,
      "new_path": "include/linux/spinlock_types.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "def2d173a8db049db0b24c7ed6c2f1d26ee03038",
      "new_mode": 33188,
      "new_path": "include/linux/spinlock_types_up.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "31accf2f0b137645910b230bc7a4028a93115b2d",
      "new_mode": 33188,
      "new_path": "include/linux/spinlock_up.h"
    },
    {
      "type": "modify",
      "old_id": "8d57a2f1226baa8034e8d93b7e4806d5a3f5fce1",
      "old_mode": 33188,
      "old_path": "kernel/Makefile",
      "new_id": "ff4dc02ce17027f22dc4bf4027075653ee7f42bb",
      "new_mode": 33188,
      "new_path": "kernel/Makefile"
    },
    {
      "type": "modify",
      "old_id": "2632b812cf24a1b7ce0e109689793b8476362d42",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "15db82116e19441a0157ecff9c809241f6f5f21d",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    },
    {
      "type": "modify",
      "old_id": "0c3f9d8bbe17b3bd00a1c4a77e941bbebc90e226",
      "old_mode": 33188,
      "old_path": "kernel/spinlock.c",
      "new_id": "0375fcd5921df5fe390ec6a3f1c1ce402d240f80",
      "new_mode": 33188,
      "new_path": "kernel/spinlock.c"
    },
    {
      "type": "modify",
      "old_id": "d9c38ba05e7bc2fcb3cbbca915bf43c51bd580fd",
      "old_mode": 33188,
      "old_path": "lib/Makefile",
      "new_id": "44a46750690ae3af65f338eefb2635ee4f9b70f5",
      "new_mode": 33188,
      "new_path": "lib/Makefile"
    },
    {
      "type": "modify",
      "old_id": "6658d81e1836517107b5b8b39aa0c7e65032ec6e",
      "old_mode": 33188,
      "old_path": "lib/dec_and_lock.c",
      "new_id": "2377af057d099ebd628bd9f7039cd4f54c9bf229",
      "new_mode": 33188,
      "new_path": "lib/dec_and_lock.c"
    },
    {
      "type": "modify",
      "old_id": "bd2bc5d887b815e261ff82c4167e410966b659d3",
      "old_mode": 33188,
      "old_path": "lib/kernel_lock.c",
      "new_id": "cb5490ec00f20f4fea3640275192f20d942a7fba",
      "new_mode": 33188,
      "new_path": "lib/kernel_lock.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "906ad101eab3cf612eab214fa466c6ce872c08c5",
      "new_mode": 33188,
      "new_path": "lib/spinlock_debug.c"
    }
  ]
}
