)]}'
{
  "log": [
    {
      "commit": "e03f1a842287480aa03732612148c0d333baca61",
      "tree": "b26375cd9efb5d5ff3be1696b8bb59059f7eb92e",
      "parents": [
        "ae5e1b6cc511b278ad52b2d42afb44780e5d4cb2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Feb 19 19:44:19 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 19 15:52:27 2008 -0800"
      },
      "message": "dm-raid1.c: fix NULL dereferences\n\nThis patch fixes two NULL dereferences introduced by commit\n06386bbfd2441416875d0403d405c56822f6ebac and spotted by the Coverity\nchecker.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39ed7adb17bdec8224bd3fae551bb7222e05f35b",
      "tree": "1bd24fe0fafe50f3d23e95f5fd87734e85bb346a",
      "parents": [
        "e6bafba5b4765a5a252f1b8d31cbf6d2459da337"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Feb 13 03:53:00 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 08:16:34 2008 -0800"
      },
      "message": "dm-raid1 breakage on 64bit\n\ntest_and_set_bit() on address of uint32_t is a Bad Idea(tm)...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af195ac82e38ba802fd86b5a014ed05ef6dd88bb",
      "tree": "661e5848dd970f6213cbcf181818f234cef2c571",
      "parents": [
        "06386bbfd2441416875d0403d405c56822f6ebac"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:39 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:39 2008 +0000"
      },
      "message": "dm raid1: report fault status\n\nThis patch adds extra information to the mirror status output, so that\nit can be determined which device(s) have failed.  For each mirror device,\na character is printed indicating the most severe error encountered.  The\ncharacters are:\n *    A \u003d\u003e Alive - No failures\n *    D \u003d\u003e Dead - A write failure occurred leaving mirror out-of-sync\n *    S \u003d\u003e Sync - A sychronization failure occurred, mirror out-of-sync\n *    R \u003d\u003e Read - A read failure occurred, mirror data unaffected\nThis allows userspace to properly reconfigure the mirror set.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "06386bbfd2441416875d0403d405c56822f6ebac",
      "tree": "ce66e5d061f67df6e85854aafaf0c43620513359",
      "parents": [
        "b80aa7a0c268d3ae0c472f648af1e3e4a359765c"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:37 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:37 2008 +0000"
      },
      "message": "dm raid1: handle read failures\n\nThis patch gives the ability to respond-to/record device failures\nthat happen during read operations.  It also adds the ability to\nread from mirror devices that are not the primary if they are\nin-sync.\n\nThere are essentially two read paths in mirroring; the direct path\nand the queued path.  When a read request is mapped, if the region\nis \u0027in-sync\u0027 the direct path is taken; otherwise the queued path\nis taken.\n\nIf the direct path is taken, we must record bio information so that\nif the read fails we can retry it.  We then discover the status of\na direct read through mirror_end_io.  If the read has failed, we will\nmark the device from which the read was attempted as failed (so we\ndon\u0027t try to read from it again), restore the bio and try again.\n\nIf the queued path is taken, we discover the results of the read\nfrom \u0027read_callback\u0027.  If the device failed, we will mark the device\nas failed and attempt the read again if there is another device\nwhere this region is known to be \u0027in-sync\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b80aa7a0c268d3ae0c472f648af1e3e4a359765c",
      "tree": "ce3d7f686a2b022dab3e0f8ddc1846d2ac4f6c58",
      "parents": [
        "8f0205b798f926e2745de5fdebf0a8605c621de6"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:35 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:35 2008 +0000"
      },
      "message": "dm raid1: fix EIO after log failure\n\nThis patch adds the ability to requeue write I/O to\ncore device-mapper when there is a log device failure.\n\nIf a write to the log produces and error, the pending writes are\nput on the \"failures\" list.  Since the log is marked as failed,\nthey will stay on the failures list until a suspend happens.\n\nSuspends come in two phases, presuspend and postsuspend.  We must\nmake sure that all the writes on the failures list are requeued\nin the presuspend phase (a requirement of dm core).  This means\nthat recovery must be complete (because writes may be delayed\nbehind it) and the failures list must be requeued before we\nreturn from presuspend.\n\nThe mechanisms to ensure recovery is complete (or stopped) was\nalready in place, but needed to be moved from postsuspend to\npresuspend.  We rely on \u0027flush_workqueue\u0027 to ensure that the\nmirror thread is complete and therefore, has requeued all writes\nin the failures list.\n\nBecause we are using flush_workqueue, we must ensure that no\nadditional \u0027queue_work\u0027 calls will produce additional I/O\nthat we need to requeue (because once we return from\npresuspend, we are unable to do anything about it).  \u0027queue_work\u0027\nis called in response to the following functions:\n- complete_resync_work \u003d NA, recovery is stopped\n- rh_dec (mirror_end_io) \u003d NA, only calls \u0027queue_work\u0027 if it\n                           is ready to recover the region\n                           (recovery is stopped) or it needs\n                           to clear the region in the log*\n                           **this doesn\u0027t get called while\n                           suspending**\n- rh_recovery_end \u003d NA, recovery is stopped\n- rh_recovery_start \u003d NA, recovery is stopped\n- write_callback \u003d 1) Writes w/o failures simply call\n                   bio_endio -\u003e mirror_end_io -\u003e rh_dec\n                   (see rh_dec above)\n                   2) Writes with failures are put on\n                   the failures list and queue_work is\n                   called**\n                   ** write_callbacks don\u0027t happen\n                   during suspend **\n- do_failures \u003d NA, \u0027queue_work\u0027 not called if suspending\n- add_mirror (initialization) \u003d NA, only done on mirror creation\n- queue_bio \u003d NA, 1) delayed I/O scheduled before flush_workqueue\n              is called.  2) No more I/Os are being issued.\n              3) Re-attempted READs can still be handled.\n              (Write completions are handled through rh_dec/\n              write_callback - mention above - and do not\n              use queue_bio.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8f0205b798f926e2745de5fdebf0a8605c621de6",
      "tree": "3b0efdd8b666e507c2c7987ce6477064c2d4cc56",
      "parents": [
        "72f4b314100bae85c75d8e4c6fec621ab44e777d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:32 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:32 2008 +0000"
      },
      "message": "dm raid1: handle recovery failures\n\nThis patch adds the calls to \u0027fail_mirror\u0027 if an error occurs during\nmirror recovery (aka resynchronization).  \u0027fail_mirror\u0027 is responsible\nfor recording the type of error by mirror device and ensuring an event\ngets raised for the purpose of notifying userspace.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "72f4b314100bae85c75d8e4c6fec621ab44e777d",
      "tree": "6dc5e860e8a4acab2e047f31391d0c8fdf366ff7",
      "parents": [
        "d74f81f8adc504a23be3babf347b9f69e9389924"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:29 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:29 2008 +0000"
      },
      "message": "dm raid1: handle write failures\n\nThis patch gives mirror the ability to handle device failures\nduring normal write operations.\n\nThe \u0027write_callback\u0027 function is called when a write completes.\nIf all the writes failed or succeeded, we report failure or\nsuccess respectively.  If some of the writes failed, we call\nfail_mirror; which increments the error count for the device, notes\nthe type of error encountered (DM_RAID1_WRITE_ERROR),  and\nselects a new primary (if necessary).  Note that the primary\ndevice can never change while the mirror is not in-sync (IOW,\nwhile recovery is happening.)  This means that the scenario\nwhere a failed write changes the primary and gives\nrecovery_complete a chance to misread the primary never happens.\nThe fact that the primary can change has necessitated the change\nto the default_mirror field.  We need to protect against reading\ngarbage while the primary changes.  We then add the bio to a new\nlist in the mirror set, \u0027failures\u0027.  For every bio in the \u0027failures\u0027\nlist, we call a new function, \u0027__bio_mark_nosync\u0027, where we mark\nthe region \u0027not-in-sync\u0027 in the log and properly set the region\nstate as, RH_NOSYNC.  Userspace must also be notified of the\nfailure.  This is done by \u0027raising an event\u0027 (dm_table_event()).\nIf fail_mirror is called in process context the event can be raised\nright away.  If in interrupt context, the event is deferred to the\nkmirrord thread - which raises the event if \u0027event_waiting\u0027 is set.\n\nBackwards compatibility is maintained by ignoring errors if\nthe DM_FEATURES_HANDLE_ERRORS flag is not present.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aa5617c55357d86c9082ba1d66fa9795370c9954",
      "tree": "9dd542c6ce1a5d14cb6366113645cdb7131350a2",
      "parents": [
        "6b3df0d7a5e85ad2afd3eecc50e2dee59e876ae8"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Oct 19 22:47:58 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:22 2007 +0100"
      },
      "message": "dm raid1: add mirror_set to struct mirror\n\nStore a pointer to the owning mirror_set structure within each mirror\nstructure for a subsequent patch to use.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6b3df0d7a5e85ad2afd3eecc50e2dee59e876ae8",
      "tree": "d20f30d0a40d1162a6cc135dca31403ae38198e5",
      "parents": [
        "fe97e2aa0502922488ad62303a19a20c8044ae18"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Oct 19 22:47:57 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:21 2007 +0100"
      },
      "message": "dm log: split suspend\n\nThere are now two phases to a suspend in device-mapper -\npresuspend and postsuspend.  This patch removes the\nsingle \u0027suspend\u0027 in the logging API and replaces it with\n\u0027presuspend\u0027 and \u0027postsuspend\u0027 functions to align it\nbetter with core device-mapper.\n\nA subsequent patch will make use of \u0027presuspend\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f3c3f0afa50782dc1742c968646c491657d255a",
      "tree": "cb1f69504094cec60564be51c405bba5eb66c322",
      "parents": [
        "ae9da83f6d800fe1f3b23bfbc8f7222ad1c5bb74"
      ],
      "author": {
        "name": "vignesh babu",
        "email": "vignesh.babu@wipro.com",
        "time": "Fri Oct 19 22:38:44 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:06 2007 +0100"
      },
      "message": "dm: use is_power_of_2\n\nReplacing n \u0026 (n - 1) for power of 2 check by is_power_of_2(n)\n\nSigned-off-by: vignesh babu \u003cvignesh.babu@wipro.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a72cf737e09da409e047863e38410930dae5fe05",
      "tree": "66a7b5e897e6625e1690ea42b7944e17f8d3161b",
      "parents": [
        "815f9e32709b014a459919176a4f0feebd42731e"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Fri Oct 19 22:38:39 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:01 2007 +0100"
      },
      "message": "dm raid1: fix leakage\n\nAdd missing \u0027dm_io_client_destroy\u0027 to alloc_context error path.\nReorganize mirror constructor error path in order to prevent\nworkqueue leakage.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dd00cc486ab1c17049a535413d1751ef3482141c",
      "tree": "d90ff69ea06792b9284f2f2665c96624f121b88a",
      "parents": [
        "3b5ad0797c0e4049001f961a8b58f1d0ce532072"
      ],
      "author": {
        "name": "Yoann Padioleau",
        "email": "padator@wanadoo.fr",
        "time": "Thu Jul 19 01:49:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:50 2007 -0700"
      },
      "message": "some kmalloc/memset -\u003ekzalloc (tree wide)\n\nTransform some calls to kmalloc/memset to a single kzalloc (or kcalloc).\n\nHere is a short excerpt of the semantic patch performing\nthis transformation:\n\n@@\ntype T2;\nexpression x;\nidentifier f,fld;\nexpression E;\nexpression E1,E2;\nexpression e1,e2,e3,y;\nstatement S;\n@@\n\n x \u003d\n- kmalloc\n+ kzalloc\n  (E1,E2)\n  ...  when !\u003d \\(x-\u003efld\u003dE;\\|y\u003df(...,x,...);\\|f(...,x,...);\\|x\u003dE;\\|while(...) S\\|for(e1;e2;e3) S\\)\n- memset((T2)x,0,E1);\n\n@@\nexpression E1,E2,E3;\n@@\n\n- kzalloc(E1 * E2,E3)\n+ kcalloc(E1,E2,E3)\n\n[akpm@linux-foundation.org: get kcalloc args the right way around]\nSigned-off-by: Yoann Padioleau \u003cpadator@wanadoo.fr\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nAcked-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nAcked-by: Pierre Ossman \u003cdrzeus-list@drzeus.cx\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc1ff9588a6d56258ff9576a31aa34f17757c666",
      "tree": "071fe0a07269c656448dc5dbe453eaa8e6f1a24a",
      "parents": [
        "f44db678edcc6f4c2779ac43f63f0b9dfa28b724"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:29:15 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: handle log failure\n\nWhen writing to a mirror, the log must be updated first.  Failure\nto update the log could result in the log not properly reflecting\nthe state of the mirror if the machine should crash.\n\nWe change the return type of the rh_flush function to give us\nthe ability to check if a log write was successful.  If the\nlog write was unsuccessful, we fail the writes to avoid the\ncase where the log does not properly reflect the state of the\nmirror.\n\nA follow-up patch - which is dependent on the ability to\nrequeue I/O\u0027s to core device-mapper - will requeue the I/O\u0027s\nfor retry (allowing the mirror to be reconfigured.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f44db678edcc6f4c2779ac43f63f0b9dfa28b724",
      "tree": "bbd835d00ca6ed0805c5c7331ebc5dd7978d299c",
      "parents": [
        "d0d444c7d48c14d59f665887c758fde248f1cb37"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:29:04 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: handle resync failures\n\nDevice-mapper mirroring currently takes a best effort approach to\nrecovery - failures during mirror synchronization are completely ignored.\nThis means that regions are marked \u0027in-sync\u0027 and \u0027clean\u0027 and removed\nfrom the hash list.  Future reads and writes that query the region\nwill incorrectly interpret the region as in-sync.\n\nThis patch handles failures during the recovery process.  If a failure\noccurs, the region is marked as \u0027not-in-sync\u0027 (aka RH_NOSYNC) and added\nto a new list \u0027failed_recovered_regions\u0027.\n\nRegions on the \u0027failed_recovered_regions\u0027 list are not marked as \u0027clean\u0027\nupon removal from the list.  Furthermore, if the DM_RAID1_HANDLE_ERRORS\nflag is set, the region is marked as \u0027not-in-sync\u0027.  This action prevents\nany future read-balancing from choosing an invalid device because of the\n\u0027not-in-sync\u0027 status.\n\nIf \"handle_errors\" is not specified when creating a mirror (leaving the\nDM_RAID1_HANDLE_ERRORS flag unset), failures will be ignored exactly as they\nwould be without this patch.  This is to preserve backwards compatibility with\nuser-space tools, such as \u0027pvmove\u0027.  However, since future read-balancing\npolicies will rely on the correct sync status of a region, a user must choose\n\"handle_errors\" when using read-balancing.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "943317efdbc295e8a28df3f5cbd549d066ee8b4a",
      "tree": "63eea4f14c4b3913b6755d802afb7631007a9e0e",
      "parents": [
        "0764147b111b8ca886e4f2e9c9e019106b09b657"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jul 12 17:28:25 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: clear region outside spinlock\n\nA clear_region function is permitted to block (in practice, rare) but gets\ncalled in rh_update_states() with a spinlock held.\n\nThe bits being marked and cleared by the above functions are used\nto update the on-disk log, but are never read directly.  We can\nperform these operations outside the spinlock since the\nbits are only changed within one thread viz.\n   - mark_region in rh_inc()\n   - clear_region in rh_update_states().\n\nSo, we grab the clean_regions list items via list_splice() within the\nspinlock and defer clear_region() until we iterate over the list for\ndeletion - similar to how the recovered_regions list is already handled.\nWe then move the flush() call down to ensure it encapsulates the changes\nwhich are done by the later calls to clear_region().\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c95bc206da4bc9838bad826883f8f461a972e441",
      "tree": "6a5667088ae684000b48946e61ccd17e09c4c04f",
      "parents": [
        "0cd3312434cd1f29bee6bff53bf2790d733ad2a2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jul 12 17:27:24 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm raid1: fix status\n\nFix mirror status line broken in dm-log-report-fault-status.patch:\n  - space missing between two words\n  - placeholder (\"0\") required for compatibility with a subsequent patch\n  - incorrect offset parameter\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cd3312434cd1f29bee6bff53bf2790d733ad2a2",
      "tree": "fc833f871f1b4d320ee5ab365a3efb3e03b278db",
      "parents": [
        "ac818646d4be79123ad8dc5f1c4da8575d4960f8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 12 17:27:01 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm: remove duplicate module name from error msgs\n\nRemove explicit module name from messages as the macro now includes it\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b997b82d266c9fb910fc2ad95b9bb93b3bccf9be",
      "tree": "e6f9b05361b4d15d6ce3ac21f11e69f7809d1780",
      "parents": [
        "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: switch rh_in_sync to blocking in do_reads\n\nThe call to rh_in_sync() in do_reads() should be allowed to block.  It is in\nthe mirror worker thread which already permits blocking operations.  This will\nbe needed to support clustered mirroring which will perform network\noperations.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105",
      "tree": "25c3f22f87d2d6aff90768764a6aa7d7d1c45936",
      "parents": [
        "26b9f228703f0518a90e7513d6fe7b6abeed5138"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: fix to commit pending clear region requests\n\nWith the code as it is, it is possible for oustanding clear region requests\nnever to get flushed when a mirror is deactivated or suspended.  This means\nthere will always be some resync work required when a mirror is activated,\neven though it may very well be in-sync.\n\nAlways requesting the flush doesn\u0027t hurt us.  This is because the log tracks\nwhether any changes occurred and, if not, no flush is performed.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88be163abb5324bab09f5eff9646590eec5314eb",
      "tree": "0db6fc18ae4b534d78da1e9756fa13405cc96dbd",
      "parents": [
        "5d234d1e03d0a4cef4da32177be6657b45cc513f"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: update dm io interface\n\nThis patch ports dm-raid1.c to the new dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4",
      "tree": "f0559bd5e25dbafaee331815c75774fa0834252b",
      "parents": [
        "315dcc226f066c1d3cef79283dcde807fe0e32d1"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: add handle_errors feature flag\n\nThis patch adds the ability to specify desired features in the mirror\nconstructor/mapping table.\n\nThe first feature of interest is \"handle_errors\".  Currently, mirroring will\nignore any I/O errors from the devices.  Subsequent patches will check for\nthis flag and handle the errors.  If flag/feature is not present, mirror will\ndo nothing - maintaining backwards compatibility.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315dcc226f066c1d3cef79283dcde807fe0e32d1",
      "tree": "f3abf75905aec13819292564ef4c2711c8bf4b8d",
      "parents": [
        "01d03a660e73fb524957c09825a3eb7c2ae7c205"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: report fault status\n\nThis patch reports the status of the log device so that userspace can detect\nthe error and take appropriate action.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ad36fe2b451cc85cc7b14f4128286759e217124",
      "tree": "05e6111d39c969ee729309d6bded6bcfe08aa44e",
      "parents": [
        "8defab33774a5c33920196a2ee9c0a946d22ba67"
      ],
      "author": {
        "name": "Holger Smolinski",
        "email": "smolinski@de.ibm.com",
        "time": "Wed May 09 02:32:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm raid1: one kmirrord per mirror\n\nThis patch replaces the single instance of kmirrord by one instance per mirror\nset.  This change is required to avoid a deadlock in kmirrord when the\npersistent dirty log of a mirror itself resides on a mirror.  The single\ninstance of kmirrord then issues a sync write to the dirty log in write_bits\nwhich gets deferred to kmirrord itself later in the call chain.  But kmirrord\nnever does the deferred work because it is still waiting for the sync\nwrite_bits.\n\n_mirror_sets is removed as it no longer needed, and we always flush the\nworkqueue before destroying it to ensure all work is complete before\ndestroying it.\n\nSigned-off-by: Holger Smolinski \u003csmolinski@de.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3ee6b2f621fec7bc8bfe43fb465e938c37c8d20",
      "tree": "3d790014bbd3280fc7b0232dc212f4b34f06092f",
      "parents": [
        "31c93a0c29bf96efd806ccf4ee81cacf04f255de"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Dec 08 02:41:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: log: rename complete_resync_work\n\nThe complete_resync_work function only provides the ability to change an\nout-of-sync region to in-sync.  This patch enhances the function to allow us\nto change the status from in-sync to out-of-sync as well, something that is\nneeded when a mirror write to one of the devices or an initial resync on a\ngiven region fails.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d2a7ad29a810441e9dacbaddcc2f0c6045390008",
      "tree": "36bea90fa2f286f525a3b4f05adf40ec4d28221c",
      "parents": [
        "45cbcd798354251b99694086af9d57c99e89bb43"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Dec 08 02:41:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: map and endio symbolic return codes\n\nUpdate existing targets to use the new symbols for return values from target\nmap and end_io functions.\n\nThere is no effect on behaviour.\n\nTest results:\nDone build test without errors.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.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\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "33184048dc4f9d5550d3b6a88c8e0ff92033eb6e",
      "tree": "e48a69f43b6efd99c6bd82ee768e5bff2358dbcd",
      "parents": [
        "5d55fdf94998db1df9ee7f1def8806bfd0e5ff73"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Nov 08 17:44:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 08 18:29:23 2006 -0800"
      },
      "message": "[PATCH] dm: raid1: fix waiting for io on suspend\n\nAll device-mapper targets must complete outstanding I/O before suspending.\nThe mirror target generates I/O in its recovery phase and fails to wait for\nit.  It needs to be tracked so we can ensure that it has completed before we\nsuspend.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cdm-devel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e52b8f6dbe18c879ad2b5013f991ec9e46813043",
      "tree": "56fe2bf95b2ca00a66e639a5d060067f09c07e65",
      "parents": [
        "695368ac3302174531429a90d55c3f7f9b83906e"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Oct 03 01:15:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:15 2006 -0700"
      },
      "message": "[PATCH] dm mirror: remove trailing space from table\n\nRemove trailing space from \u0027dmsetup table\u0027 output.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@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": "c06aad854fdb9da38fcc22dccfe9d72919453e43",
      "tree": "a27fc99fe974cc5df08393c5b16b4499b07aa3e5",
      "parents": [
        "9a654518e1b774b8e8f74a819fd12a931e7672c9"
      ],
      "author": {
        "name": "Daniel Kobras",
        "email": "kobras@linux.de",
        "time": "Sun Aug 27 01:23:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:28 2006 -0700"
      },
      "message": "[PATCH] dm: Fix deadlock under high i/o load in raid1 setup.\n\nOn an nForce4-equipped machine with two SATA disk in raid1 setup using dmraid,\nwe experienced frequent deadlock of the system under high i/o load.  \u0027cat\n/dev/zero \u003e ~/zero\u0027 was the most reliable way to reproduce them: Randomly\nafter a few GB, \u0027cp\u0027 would be left in \u0027D\u0027 state along with kjournald and\nkmirrord.  The functions cp and kjournald were blocked in did vary, but\nkmirrord\u0027s wchan always pointed to \u0027mempool_alloc()\u0027.  We\u0027ve seen this pattern\non 2.6.15 and 2.6.17 kernels.  http://lkml.org/lkml/2005/4/20/142 indicates\nthat this problem has been around even before.\n\nSo much for the facts, here\u0027s my interpretation: mempool_alloc() first tries\nto atomically allocate the requested memory, or falls back to hand out\npreallocated chunks from the mempool.  If both fail, it puts the calling\nprocess (kmirrord in this case) on a private waitqueue until somebody refills\nthe pool.  Where the only \u0027somebody\u0027 is kmirrord itself, so we have a\ndeadlock.\n\nI worked around this problem by falling back to a (blocking) kmalloc when\nbefore kmirrord would have ended up on the waitqueue.  This defeats part of\nthe benefits of using the mempool, but at least keeps the system running.  And\nit could be done with a two-line change.  Note that mempool_alloc() clears the\nGFP_NOIO flag internally, and only uses it to decide whether to wait or return\nan error if immediate allocation fails, so the attached patch doesn\u0027t change\nbehaviour in the non-deadlocking case.  Path is against current git\n(2.6.18-rc4), but should apply to earlier versions as well.  I\u0027ve tested on\n2.6.15, where this patch makes the difference between random lockup and a\nstable system.\n\nSigned-off-by: Daniel Kobras \u003ckobras@linux.de\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72d9486169a2a8353e022813185ba2f32d7dde69",
      "tree": "2fe6c382feb3f21d829abf543c54be486007557c",
      "parents": [
        "5c6bd75d06db512515a3781aa97e42df2faf0815"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 26 00:27:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:36 2006 -0700"
      },
      "message": "[PATCH] dm: improve error message consistency\n\nTidy device-mapper error messages to include context information\nautomatically.\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": "ce503f59ae899c3e75a8a1cf46f2d44c0c5b5c7c",
      "tree": "7bec805d077c3a7f47f7a1965a1a8020082c5544",
      "parents": [
        "8a835f11bce68ed990533e49b5dedb00bee46d71"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Jun 26 00:27:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:35 2006 -0700"
      },
      "message": "[PATCH] dm kcopyd: error accumulation fix\n\nkcopyd should accumulate errors - otherwise I/O failures may be ignored\nunintentionally.\n\nAnd invert \u0027success\u0027 (used in a future patch), using a more intuitive\n!(read_err || write_err).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@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": "702ca6f0be9ef95087ee2c9f31e6517492554483",
      "tree": "e59b9a1e71e68a9f0230d12a10931b60da1ac9c4",
      "parents": [
        "143535396c7ebd9395a931a000b3963f457712b8"
      ],
      "author": {
        "name": "Kevin Corry",
        "email": "kevcorry@us.ibm.com",
        "time": "Mon Jun 26 00:27:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:35 2006 -0700"
      },
      "message": "[PATCH] dm mirror log: sector size fix\n\nOn-disk logs for dm-mirror devices are currently hard-coded to use 512 byte\nhard-sector-sizes.  This patch fixes dm-log so it will work with devices with\nnon-512-byte hard-sector-sizes.\n\nTo maintain full compatibility, instead of moving the clean-bits bitset to a\nbitset, and enlarges the disk-header buffer to encompass both the header and\nthe bitset.  The I/O routines for the bitset are removed, and the I/O routines\nfor the disk-header now also read/write the bitset.\n\nSigned-off-by: Kevin Corry \u003ckevcorry@us.ibm.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": "e4c8b3ba34cc1aeab451c7a5cc843c5fd62cbe3d",
      "tree": "2b211393b1ffacd05a7fbae994012b7000e2c233",
      "parents": [
        "f0b04115368ff383654a3bd26baf8f4be5e81132"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Mon Jun 26 00:27:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:35 2006 -0700"
      },
      "message": "[PATCH] dm: mirror sector offset fix\n\nThe device-mapper core does not perform any remapping of bios before passing\nthem to the targets.  If a particular mapping begins part-way into a device,\ntargets obtain the sector relative to the start of the mapping by subtracting\nti-\u003ebegin.\n\nThe dm-raid1 target didn\u0027t do this everywhere: this patch fixes it, taking\ncare to subtract ti-\u003ebegin exactly once for each bio.\n\n[akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled]\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "179e09172ab663b8587ecc46bb18a56a770304a9",
      "tree": "4d57324584c43f81ac2a6d258bb46e75fb6b4327",
      "parents": [
        "a842ef297fd91b1b93f2aa5898d2efd19e95f6a5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Mon Jun 26 00:24:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:18 2006 -0700"
      },
      "message": "[PATCH] drivers: use list_move()\n\nThis patch converts the combination of list_del(A) and list_add(A, B) to\nlist_move(A, B) under drivers/.\n\nAcked-by: Corey Minyard \u003cminyard@mvista.com\u003e\nCc: Ben Collins \u003cbcollins@debian.org\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Alasdair Kergon \u003cdm-devel@redhat.com\u003e\nCc: Gerd Knorr \u003ckraxel@bytesex.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Frank Pavlic \u003cfpavlic@de.ibm.com\u003e\nAcked-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Andrew Vasquez \u003clinux-driver@qlogic.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ee218cd67b385759993a6c840ea45f0ee0a8b30",
      "tree": "788d33b31e9d008eeb2de2a7f874e45b09695719",
      "parents": [
        "930d332a23682202c07df0276dd665a57755b37d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Mar 27 01:17:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:58 2006 -0800"
      },
      "message": "[PATCH] dm: remove SECTOR_FORMAT\n\nWe don\u0027t know what type sector_t has.  Sometimes it\u0027s unsigned long, sometimes\nit\u0027s unsigned long long.  For example on ppc64 it\u0027s unsigned long with\nCONFIG_LBD\u003dn and on x86_64 it\u0027s unsigned long long with CONFIG_LBD\u003dn.\n\nThe way to handle all of this is to always use unsigned long long and to\nalways typecast the sector_t when printing it.\n\nAcked-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": "930d332a23682202c07df0276dd665a57755b37d",
      "tree": "0a0202fb581a65a0b63a4a98aa725eb2088a7814",
      "parents": [
        "76df1c651b66bdf07d60b3d60789feb5f58d73e3"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 27 01:17:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:58 2006 -0800"
      },
      "message": "[PATCH] drivers/md/dm-raid1.c: Fix inconsistent mirroring after interrupted recovery\n\ndm-mirror has potential data corruption problem: while on-disk log shows\nthat all disk contents are in-sync, actual contents of the disks are not\nsynchronized.  This problem occurs if initial recovery (synching) is\ninterrupted and resumed.\n\nAttached patch fixes this problem.\n\nBackground:\n\nrh_dec() changes the region state from RH_NOSYNC (out-of-sync) to RH_CLEAN\n(in-sync), which results in the corresponding bit of clean_bits being set.\n\nThis is harmful if on-disk log is used and the map is removed/suspended\nbefore the initial sync is completed.  The clean_bits is written down to\nthe on-disk log at the map removal, and, upon resume, it\u0027s read and copied\nto sync_bits.  Since the recovery process refers to the sync_bits to find a\nregion to be recovered, the region whose state was changed from RH_NOSYNC\nto RH_CLEAN is no longer recovered.\n\nIf you haven\u0027t applied dm-raid1-read-balancing.patch proposed in dm-devel\nsometimes ago, the contents of the mirrored disk just corrupt silently.  If\nyou have, balanced read may get bogus data from out-of-sync disks.\n\nThe patch keeps RH_NOSYNC state unchanged.  It will be changed to\nRH_RECOVERING when recovery starts and get reclaimed when the recovery\ncompletes.  So it doesn\u0027t leak the region hash entry.\n\nDescription:\n\nKeep RH_NOSYNC state unchanged when I/O on the region completes.\n\nrh_dec() changes the region state from RH_NOSYNC (out-of-sync) to RH_CLEAN\n(in-sync), which results in the corresponding bit of clean_bits being set.\n\nThis is harmful if on-disk log is used and the map is removed/suspended\nbefore the initial sync is completed.  The clean_bits is written down to\nthe on-disk log at the map removal, and, upon resume, it\u0027s read and copied\nto sync_bits.  Since the recovery process refers to the sync_bits to find a\nregion to be recovered, the region whose state was changed from RH_NOSYNC\nto RH_CLEAN is no longer recovered.\n\nIf you haven\u0027t applied dm-raid1-read-balancing.patch proposed in dm-devel\nsometimes ago, the contents of the mirrored disk just corrupt silently.  If\nyou have, balanced read may get bogus data from out-of-sync disks.\n\nThe RH_NOSYNC region will be changed to RH_RECOVERING when recovery starts\non the region and get reclaimed when the recovery completes.  So it doesn\u0027t\nleak the region hash entry.\n\nAlasdair said:\n\n  I\u0027ve analysed the relevant part of the state machine and I believe that\n  the patch is correct.\n\n  (Further work on this code is still needed - this patch has the\n  side-effect of holding onto memory unnecessarily for long periods of time\n  under certain workloads - but better that than corrupting data.)\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-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": "0eaae62abaa1ad1f231932b6cdd9fb1b91df6651",
      "tree": "cda02cffff075a8b542ddcea4fa0ff0064130502",
      "parents": [
        "53184082b070dfb077218828fdf839826102ed96"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Sun Mar 26 01:37:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:59 2006 -0800"
      },
      "message": "[PATCH] mempool: use common mempool kmalloc allocator\n\nThis patch changes several mempool users, all of which are basically just\nwrappers around kmalloc(), to use the common mempool_kmalloc/kfree, rather\nthan their own wrapper function, removing a bunch of duplicated code.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1a190807074bd6ad8771e00b00752771ae586cb",
      "tree": "ea9df244d215722e422f7bd7560dd9fe59789f44",
      "parents": [
        "2d5fe68987341a59a3fd97c71695efcabb0c6fd5"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 06 00:20:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:34:00 2006 -0800"
      },
      "message": "[PATCH] device-mapper raid1: add default mirror\n\nThis patch introduces a new field to the mirror_set (default_mirror) to store\nthe default mirror.\n\n(A subsequent patch will allow us to change the default mirror in the event of\na failure.)\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": "7692c5dd48026d952199c2b97c3418f927cc0407",
      "tree": "f198721b3b65a782ae0ed7400120cc45e0ce87c1",
      "parents": [
        "233886dd32ad71daf9c21bf3728c0933a94870f0"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Nov 21 21:32:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:14:31 2005 -0800"
      },
      "message": "[PATCH] device-mapper raid1: drop mark_region spinlock fix\n\nThe spinlock region_lock is held while calling mark_region which can sleep.\nDrop the spinlock before calling that function.\n\nA region\u0027s state and inclusion in the clean list are altered by rh_inc and\nrh_dec.  The state variable is set to RH_CLEAN in rh_dec, but only if\n\u0027pending\u0027 is zero.  It is set to RH_DIRTY in rh_inc, but not if it is already\nso.  The changes to \u0027pending\u0027, the state, and the region\u0027s inclusion in the\nclean list need to be atomicly.\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": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "844e8d904a7c1446e3f040683b4a0645c3eb168f",
      "tree": "5e277539dab95d6325cec564a91e0e70acdce021",
      "parents": [
        "e5dcdd80a60627371f40797426273048630dc8ca"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Fri Sep 09 16:23:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 16:39:09 2005 -0700"
      },
      "message": "[PATCH] dm: fix rh_dec()/rh_inc() race in dm-raid1.c\n\nFix another bug in dm-raid1.c that the dirty region may stay in or be moved\nto clean list and freed while in use.\n\nIt happens as follows:\n\n   CPU0                                   CPU1\n   ------------------------------------------------------------------------------\n   rh_dec()\n     if (atomic_dec_and_test(pending))\n        \u003cthe region is still marked dirty\u003e\n                                          rh_inc()\n                                            if the region is clean\n                                               mark the region dirty\n                                               and remove from clean list\n        mark the region clean\n        and move to clean list\n                                                  atomic_inc(pending)\n\nAt this stage, the region is in clean list and will be mistakenly reclaimed\nby rh_update_states() later.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48f1f5328267f52a34e61b8b0e6fc55a23c1348a",
      "tree": "aba1dd52b8b0825cfb88f3ec2fd0b10efb07db01",
      "parents": [
        "d27a4dddd96f4ee898f8d1d597d38f8f4079bbb0"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Aug 04 12:53:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 04 13:00:55 2005 -0700"
      },
      "message": "[PATCH] dm-raid locking fix\n\nThis code was never designed to handle more than one instance of do_work()\nrunning at once.\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": "d88854f08961d26f3a63cfae7972188d26a128e4",
      "tree": "60a7319d8c79898325baaab17b655acaf2ec8040",
      "parents": [
        "374a6cf281771b23e263efd31fdc896924394dba"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 07 17:59:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:24:11 2005 -0700"
      },
      "message": "[PATCH] device-mapper: dm-raid1: Limit bios to size of mirror region\n\nSet the target\u0027s split_io field when building a dm-mirror device so\nincoming bios won\u0027t span the mirror\u0027s internal regions.  Without this,\nregions can be accessed while not holding correct locks and data corruption\nis possible.\n\nReported-By: \"Zhao Qian\" \u003czhaoqian@aaastor.com\u003e\nFrom: Kevin Corry \u003ckevcorry@us.ibm.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": "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"
    }
  ]
}
