)]}'
{
  "log": [
    {
      "commit": "a159c1ac5f33c6cf0f5aa3c9d1ccdc82c907ee46",
      "tree": "2cb6bfd3f376e2366f3e3820ebd07a0a86a01cfc",
      "parents": [
        "4db6bfe02bdc7dc5048f46dd682a94801d029adc"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:19 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:19 2009 +0000"
      },
      "message": "dm snapshot: extend exception store functions\n\nSupply dm_add_exception as a callback to the read_metadata function.\nAdd a status function ready for a later patch and name the functions\nconsistently.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1ae25f9c933d1432fbffdf3e126051a974608abf",
      "tree": "5a15a6330107a70a51d0c3cfe0bf703762e79839",
      "parents": [
        "aea53d92f70eeb00ae480e399a997dd55fd5055d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:16 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:16 2009 +0000"
      },
      "message": "dm snapshot: rename struct exception_store\n\nRename struct exception_store to dm_exception_store.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aea53d92f70eeb00ae480e399a997dd55fd5055d",
      "tree": "55e087e5e22168ed87f6d51ca0c8557a7678834f",
      "parents": [
        "fe9cf30eb8186ef267d1868dc9f12f2d0f40835a"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:15 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:15 2009 +0000"
      },
      "message": "dm snapshot: separate out exception store interface\n\nPull structures that bridge the gap between snapshot and\nexception store out of dm-snap.h and put them in a new\n.h file - dm-exception-store.h.  This file will define the\nAPI for new exception stores.\n\nUltimately, dm-snap.h is unnecessary, since only dm-snap.c\nshould be using it.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "879129d208f725267366296b631aef31409cf304",
      "tree": "7dd927ae094580f6a3fe420c0cc5f8e251ce9e9e",
      "parents": [
        "60c856c8e2f57a3f69c505735ef66e3719ea0bd6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Oct 30 13:33:16 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Oct 30 13:33:16 2008 +0000"
      },
      "message": "dm snapshot: wait for chunks in destructor\n\nIf there are several snapshots sharing an origin and one is removed\nwhile the origin is being written to, the snapshot\u0027s mempool may get\ndeleted while elements are still referenced.\n\nPrior to dm-snapshot-use-per-device-mempools.patch the pending\nexceptions may still have been referenced after the snapshot was\ndestroyed, but this was not a problem because the shared mempool\nwas still there.\n\nThis patch fixes the problem by tracking the number of mempool elements\nin use.\n\nThe scenario:\n- You have an origin and two snapshots 1 and 2.\n- Someone writes to the origin.\n- It creates two exceptions in the snapshots, snapshot 1 will be primary\nexception, snapshot 2\u0027s pending_exception-\u003eprimary_pe will point to the\nexception in snapshot 1.\n- The exceptions are being relocated, relocation of exception 1 finishes\n(but it\u0027s pending_exception is still allocated, because it is referenced\nby an exception from snapshot 2)\n- The user lvremoves snapshot 1 --- it calls just suspend (does nothing)\nand destructor. md-\u003epending is zero (there is no I/O submitted to the\nsnapshot by md layer), so it won\u0027t help us.\n- The destructor waits for kcopyd jobs to finish on snapshot 1 --- but\nthere are none.\n- The destructor on snapshot 1 cleans up everything.\n- The relocation of exception on snapshot 2 finishes, it drops reference\non primary_pe. This frees its primary_pe pointer. Primary_pe points to\npending exception created for snapshot 1. So it frees memory into\nnon-existing mempool.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "586e80e6ee0d137c7d79fbae183bb37bc60ee97e",
      "tree": "1f3cc124ed6ad93abd4c14f9c8900333c6cba6fb",
      "parents": [
        "d63a5ce3c0d25c96bdadc78792e5b48b846e899d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Oct 21 17:44:59 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 21 17:44:59 2008 +0100"
      },
      "message": "dm: remove dm header from targets\n\nChange #include \"dm.h\" to #include \u003clinux/device-mapper.h\u003e in all targets.\nTargets should not need direct access to internal DM structures.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f68d4f3d394da5b1f69d855b8513f4256ccc803e",
      "tree": "0302fdc83ab62aeb9ad891dffd772625219bcbfc",
      "parents": [
        "7c5f78b9d7f21937e46c26db82976df4b459c95c"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Oct 21 17:44:53 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 21 17:44:53 2008 +0100"
      },
      "message": "dm snapshot: drop unused last_percent\n\nThe last_percent field is unused - remove it.\n(It dates from when events were triggered as each X% filled up.)\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "92e868122edf08b9fc06b112e7e0c80ab94c1f93",
      "tree": "9cd2e5e2f15adcaf1b8d3f8f55d5a676ad40bfd6",
      "parents": [
        "a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:35 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:35 2008 +0100"
      },
      "message": "dm snapshot: use per device mempools\n\nChange snapshot per-module mempool to per-device mempool.\n\nPer-module mempools could cause a deadlock if multiple\nsnapshot devices are stacked above each other.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "cd45daffd1f7b53aac0835b23e97f814ec3f10dc",
      "tree": "17d35682a8a97f3a73f513531f08ba7e0c8cd718",
      "parents": [
        "def052d21c4e77975bb75cf212f018ec913f8e2f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jul 21 12:00:32 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jul 21 12:00:32 2008 +0100"
      },
      "message": "dm snapshot: track snapshot reads\n\nWhenever a snapshot read gets mapped through to the origin, track it in\na per-snapshot hash table indexed by chunk number, using memory allocated\nfrom a new per-snapshot mempool.\n\nWe need to track these reads to avoid race conditions which will be fixed\nby patches that follow.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "eb69aca5d3370b81450d68edeebc2bb9a3eb9689",
      "tree": "ddb4c6d52e963b0898a892aaaee3228680e36449",
      "parents": [
        "22a1ceb1e6a7fbce95a1531ff10bb4fb036d4a37"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Thu Apr 24 21:43:19 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:26:44 2008 +0100"
      },
      "message": "dm kcopyd: clean interface\n\nClean up the kcopyd interface to prepare for publishing it in include/linux.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "72727bad544b4ce0a3f7853bfd7ae939f398007d",
      "tree": "97961bf4031c9fa1739f545e6030e8ab6cbf0ecc",
      "parents": [
        "769aef30f0f505c44bbe9fcd2c911a052a386139"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 24 21:43:11 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:26:40 2008 +0100"
      },
      "message": "dm snapshot: store pointer to target instance\n\nSave pointer to dm_target in dm_snapshot structure.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d74f81f8adc504a23be3babf347b9f69e9389924",
      "tree": "4a687e400479ad330bb36ded54012cd8b8b84ecf",
      "parents": [
        "4f7f5c675fd6bacaae3c67be44de872dcff0e3b7"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:27 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:27 2008 +0000"
      },
      "message": "dm snapshot: combine consecutive exceptions in memory\n\nProvided sector_t is 64 bits, reduce the in-memory footprint of the\nsnapshot exception table by the simple method of using unused bits of\nthe chunk number to combine consecutive entries.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "028867ac28e51afc834a5931e7545c022557eded",
      "tree": "0a268776ac68f26c86a28416b35a60ab54e3fb94",
      "parents": [
        "79e15ae424afa0a40b1a0c4478046d6ba0b71e20"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:26:32 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: use kmem_cache macro\n\nUse new KMEM_CACHE() macro and make the newly-exposed structure names more\nmeaningful.  Also remove some superfluous casts and inlines (let a modern\ncompiler be the judge).\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca3a931fd33b841cbcc5932f8eac7c43e0909242",
      "tree": "bc8aa7ace1a5e528cbfabc01b17a2016c55bc448",
      "parents": [
        "9d493fa8c943ed4ec6e42b7ebfd8f0b7657d54f8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 03 01:15:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:14 2006 -0700"
      },
      "message": "[PATCH] dm snapshot: add workqueue\n\nAdd a workqueue so that I/O can be queued up to be flushed from a separate\nthread (e.g.  if local interrupts are disabled).\n\nA new per-snapshot spinlock pe_lock is introduced to protect queued_bios.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c7e3bf44d0ae227ea1ee87c2197212e65d043d7",
      "tree": "658140b966d78f4709de10cd03e0bfdade6bc13e",
      "parents": [
        "92c060a692a0c3482cdfcaf346cb2f7572368895"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Tue Oct 03 01:15:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:14 2006 -0700"
      },
      "message": "[PATCH] dm snapshot: allow zero chunk_size\n\nThe chunk size of snapshots cannot be changed so it is redundant to require it\nas a parameter when activating an existing snapshot.  Allow a value of zero in\nthis case and ignore it.  For a new snapshot, use a default value if zero is\nspecified.\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa14edeb994f8f7e223d02ad14780bf2fa719f6d",
      "tree": "07fb8ba39d619708bdc0a68a32d4a7296abd955c",
      "parents": [
        "cb82a6cdf994d6656ad0a25ed28395af3416a27c"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Feb 01 03:04:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:10 2006 -0800"
      },
      "message": "[PATCH] device-mapper snapshot: load metadata on creation\n\nMove snapshot metadata loading to happen when the table is created instead of\nwhen the device is resumed.  Writes to the origin device don\u0027t trigger\nexceptions until each snapshot table becomes active when resume() is called on\neach snapshot.\n\nIf you\u0027re using lvm2, for this patch to work properly you should update to\nlvm2 version 2.02.01 or later and device-mapper version 1.02.02 or later.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
