)]}'
{
  "log": [
    {
      "commit": "f132c6cf77251e011e1dad0ec88c0b1fda16d5aa",
      "tree": "f04b469a3547a19b7bdbe110adc571eb71c93328",
      "parents": [
        "23016defd7db701a01dc49f972ad6b1bae9651c2",
        "3f6240f3e4e2608caf1a70d614ada658cbcbe7be"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:30:57 2012 -0700"
      },
      "committer": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:45:28 2012 -0700"
      },
      "message": "Merge commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027 into msm-3.4\n\nAU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.\nFirst parent is from google/android-3.4.\n\n* commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027: (8712 commits)\n  PRNG: Device tree entry for qrng device.\n  vidc:1080p: Set video core timeout value for Thumbnail mode\n  msm: sps: improve the debugging support in SPS driver\n  board-8064 msm: Overlap secure and non secure video firmware heaps.\n  msm: clock: Add handoff ops for 7x30 and copper XO clocks\n  msm_fb: display: Wait for external vsync before DTV IOMMU unmap\n  msm: Fix ciruclar dependency in debug UART settings\n  msm: gdsc: Add GDSC regulator driver for msm-copper\n  defconfig: Enable Mobicore Driver.\n  mobicore: Add mobicore driver.\n  mobicore: rename variable to lower case.\n  mobicore: rename folder.\n  mobicore: add makefiles\n  mobicore: initial import of kernel driver\n  ASoC: msm: Add SLIMBUS_2_RX CPU DAI\n  board-8064-gpio: Update FUNC for EPM SPI CS\n  msm_fb: display: Remove chicken bit config during video playback\n  mmc: msm_sdcc: enable the sanitize capability\n  msm-fb: display: lm2 writeback support on mpq platfroms\n  msm_fb: display: Disable LVDS phy \u0026 pll during panel off\n  ...\n\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "b1dab2f0409c478fd2d9e227c2c018524eca9603",
      "tree": "9d2b29b9209c6e0036da295b7704452aa7d35e72",
      "parents": [
        "2f05af8b5943d5702ef555c91da93af99938be44",
        "f402693d06f32e746c6153e459c5fb064fa02741"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 18:22:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 18:22:45 2012 -0700"
      },
      "message": "Merge tag \u0027dm-3.4-fixes-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm\n\nPull a dm fix from Alasdair G Kergon:\n \"A fix to the thin provisioning userspace interface.\"\n\n* tag \u0027dm-3.4-fixes-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:\n  dm thin: fix table output when pool target disables discard passdown internally\n"
    },
    {
      "commit": "f402693d06f32e746c6153e459c5fb064fa02741",
      "tree": "c4cfcf2702b3e5a1e94e3c3b923b52c413e4325a",
      "parents": [
        "36be50515fe2aef61533b516fa2576a2c7fe7664"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 19 01:01:01 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 19 01:01:01 2012 +0100"
      },
      "message": "dm thin: fix table output when pool target disables discard passdown internally\n\nWhen the thin pool target clears the discard_passdown parameter\ninternally, it incorrectly changes the table line reported to userspace.\nThis breaks dumb string comparisons on these table lines in generic\nuserspace device-mapper library code and leads to tables being reloaded\nrepeatedly when nothing is actually meant to be changing.\n\nThis patch corrects this by no longer changing the table line when\ndiscard passdown was disabled.\n\nWe can still tell when discard passdown is overridden by looking for the\nmessage \"Discard unsupported by data device (sdX): Disabling discard passdown.\"\n\nThis automatic detection is also moved from the \u0027load\u0027 to the \u0027resume\u0027\nso that it is re-evaluated should the properties of underlying devices\nchange.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2f05af8b5943d5702ef555c91da93af99938be44",
      "tree": "dd5de3120fcfa21ac25e1ff96871b765d0104ed7",
      "parents": [
        "8394edf3710b124793d46c51942a6392b7b569a0",
        "b0d634d5683f0b186b242ce6a4f3b041edb8b956"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 16:19:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 16:19:59 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md\n\nPull one more md bugfix from NeilBrown:\n \"Fix bug in recent fix to RAID10.\n\n  Without this patch, recovery will crash\"\n\n* tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md:\n  md/raid10: fix transcription error in calc_sectors conversion.\n"
    },
    {
      "commit": "b0d634d5683f0b186b242ce6a4f3b041edb8b956",
      "tree": "6443dc130dcd45c78ca2878938464c418ea89c41",
      "parents": [
        "0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 19 09:01:13 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 19 09:01:13 2012 +1000"
      },
      "message": "md/raid10: fix transcription error in calc_sectors conversion.\n\nThe old code was\n\t\tsector_div(stride, fc);\nthe new code was\n\t\tsector_dir(size, conf-\u003enear_copies);\n\n\u0027size\u0027 is right (the stride various wasn\u0027t really needed), but\n\u0027fc\u0027 means \u0027far_copies\u0027, and that is an important difference.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e       \n"
    },
    {
      "commit": "36a1987cd891fa82d9981886c3abbbe82c428c0d",
      "tree": "26f2c1ebc2d0485de222f13ebf812456ee8a7cb8",
      "parents": [
        "31ae98359d26ff89b745c4f8094093cbf6ccbdc6",
        "0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 17 09:44:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 17 09:44:35 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md\n\nPull two md fixes from NeilBrown:\n \"One fixes a bug in the new raid10 resize code so is relevant to 3.4\n  only.\n\n  The other fixes a bug in the use of md by dm-raid, so is relevant to\n  any kernel with dm-raid support\"\n\n* tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md:\n  MD: Add del_timer_sync to mddev_suspend (fix nasty panic)\n  md/raid10: set dev_sectors properly when resizing devices in array.\n"
    },
    {
      "commit": "0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9",
      "tree": "3d0b8c398c1eda38bac6d3dd6ac1b22b518d26b4",
      "parents": [
        "6508fdbf40a92fd7c19d32780ea33ce8e8362b93"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 16 04:06:14 2012 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 17 10:38:24 2012 +1000"
      },
      "message": "MD: Add del_timer_sync to mddev_suspend (fix nasty panic)\n\nUse del_timer_sync to remove timer before mddev_suspend finishes.\n\nWe don\u0027t want a timer going off after an mddev_suspend is called.  This is\nespecially true with device-mapper, since it can call the destructor function\nimmediately following a suspend.  This results in the removal (kfree) of the\nstructures upon which the timer depends - resulting in a very ugly panic.\nTherefore, we add a del_timer_sync to mddev_suspend to prevent this.\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6508fdbf40a92fd7c19d32780ea33ce8e8362b93",
      "tree": "f51e0e36459eeb2f4e7d94f3ff15ffc5ab12de7c",
      "parents": [
        "b16b1b6cd052acbacc0a15f934bca9b354534d48"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 17 10:08:45 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 17 10:08:45 2012 +1000"
      },
      "message": "md/raid10: set dev_sectors properly when resizing devices in array.\n\nraid10 stores dev_sectors in \u0027conf\u0027 separately from the one in\n\u0027mddev\u0027 because it can have a very significant effect on block\naddressing and so need to be updated carefully.\n\nHowever raid10_resize isn\u0027t updating it at all!\n\nTo update it correctly, we need to make sure it is a proper\nmultiple of the chunksize taking various details of the layout\nin to account.\nThis calculation is currently done in setup_conf.   So split it\nout from there and call it from raid10_resize as well.\nThen set conf-\u003edev_sectors properly.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4a873f53995cd551587ee4aad1e6f189a330ff36",
      "tree": "a1caacf532d6a32861399720ae2883396f443954",
      "parents": [
        "2eb429671a4b83ea34a1a722a4656bb14ce7c971",
        "062e55e3960062fc2fb62a7274b4c253003eba73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 12 12:57:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 12 12:57:01 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David S. Miller:\n\n 1) Since we do RCU lookups on ipv4 FIB entries, we have to test if the\n    entry is dead before returning it to our caller.\n\n 2) openvswitch locking and packet validation fixes from Ansis Atteka,\n    Jesse Gross, and Pravin B Shelar.\n\n 3) Fix PM resume locking in IGB driver, from Benjamin Poirier.\n\n 4) Fix VLAN header handling in vhost-net and macvtap, from Basil Gor.\n\n 5) Revert a bogus network namespace isolation change that was causing\n    regressions on S390 networking devices.\n\n 6) If bonding decides to process and handle a LACPDU frame, we\n    shouldn\u0027t bump the rx_dropped counter.  From Jiri Bohac.\n\n 7) Fix mis-calculation of available TX space in r8169 driver when doing\n    TSO, which can lead to crashes and/or hung device.  From Julien\n    Ducourthial.\n\n 8) SCTP does not validate cached routes properly in all cases, from\n    Nicolas Dichtel.\n\n 9) Link status interrupt needs to be handled in ks8851 driver, from\n    Stephen Boyd.\n\n10) Use capable(), not cap_raised(), in connector/userns netlink code.\n    From Eric W. Biederman via Andrew Morton.\n\n11) Fix pktgen OOPS on module unload, from Eric Dumazet.\n\n12) iwlwifi under-estimates SKB truesizes, also from Eric Dumazet.\n\n13) Cure division by zero in SFC driver, from Ben Hutchings.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)\n  ks8851: Update link status during link change interrupt\n  macvtap: restore vlan header on user read\n  vhost-net: fix handle_rx buffer size\n  bonding: don\u0027t increase rx_dropped after processing LACPDUs\n  connector/userns: replace netlink uses of cap_raised() with capable()\n  sctp: check cached dst before using it\n  pktgen: fix crash at module unload\n  Revert \"net: maintain namespace isolation between vlan and real device\"\n  ehea: fix losing of NEQ events when one event occurred early\n  igb: fix rtnl race in PM resume path\n  ipv4: Do not use dead fib_info entries.\n  r8169: fix unsigned int wraparound with TSO\n  sfc: Fix division by zero when using one RX channel and no SR-IOV\n  openvswitch: Validation of IPv6 set port action uses IPv4 header\n  net: compare_ether_addr[_64bits]() has no ordering\n  cdc_ether: Ignore bogus union descriptor for RNDIS devices\n  bnx2x: bug fix when loading after SAN boot\n  e1000: Silence sparse warnings by correcting type\n  igb, ixgbe: netdev_tx_reset_queue incorrectly called from tx init path\n  openvswitch: Release rtnl_lock if ovs_vport_cmd_build_info() failed.\n  ...\n"
    },
    {
      "commit": "510193a2d3d2e03ae53b95c0ae4f33cdff02cbf8",
      "tree": "7d1a5c7b9c8bb19fef2d28e6ec84c5f0e400be61",
      "parents": [
        "7cab8bf1601d38fd73a0a4ea40cc4892b26907cc"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 12 01:43:21 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:21 2012 +0100"
      },
      "message": "dm mpath: check if scsi_dh module already loaded before trying to load\n\nIf the requested scsi_dh module is already loaded then skip\nrequest_module().\n\nMultipath table loads can hang in an unnecessary __request_module.\n\nReported-by: Ben Marzinski \u003cbmarzins@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7cab8bf1601d38fd73a0a4ea40cc4892b26907cc",
      "tree": "541c6f0757a6a806e49dad866b1bca5cffd55c3e",
      "parents": [
        "c3a0ce2eab76daf9516c817c3f227ea3f4549bd8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:19 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:19 2012 +0100"
      },
      "message": "dm thin: correct module description\n\nRemove duplicate copy of string \"device-mapper\" (DM_NAME) from\nMODULE_DESCRIPTION.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c3a0ce2eab76daf9516c817c3f227ea3f4549bd8",
      "tree": "c2510a2e8a4a0f2c0eb66f736d1e1b70b53d0e27",
      "parents": [
        "03aaae7cdc71bc306888440b1f569d463e917b6d"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 12 01:43:16 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:16 2012 +0100"
      },
      "message": "dm thin: fix unprotected use of prepared_discards list\n\nFix two places in commit 104655fd4dce (\"dm thin: support discards\") that\ndidn\u0027t use pool-\u003elock to protect against concurrent changes to the\nprepared_discards list.\n\nWithout this fix, thin_endio() can race with process_discard(), leading\nto concurrent list_add()s that result in the processes locking up with\nan error like the following:\n\nWARNING: at lib/list_debug.c:32 __list_add+0x8f/0xa0()\n...\nlist_add corruption. next-\u003eprev should be prev (ffff880323b96140), but was ffff8801d2c48440. (next\u003dffff8801d2c485c0).\n...\nPid: 17205, comm: kworker/u:1 Tainted: G        W  O 3.4.0-rc3.snitm+ #1\nCall Trace:\n [\u003cffffffff8103ca1f\u003e] warn_slowpath_common+0x7f/0xc0\n [\u003cffffffff8103cb16\u003e] warn_slowpath_fmt+0x46/0x50\n [\u003cffffffffa04f6ce6\u003e] ? bio_detain+0xc6/0x210 [dm_thin_pool]\n [\u003cffffffff8124ff3f\u003e] __list_add+0x8f/0xa0\n [\u003cffffffffa04f70d2\u003e] process_discard+0x2a2/0x2d0 [dm_thin_pool]\n [\u003cffffffffa04f6a78\u003e] ? remap_and_issue+0x38/0x50 [dm_thin_pool]\n [\u003cffffffffa04f7c3b\u003e] process_deferred_bios+0x7b/0x230 [dm_thin_pool]\n [\u003cffffffffa04f7df0\u003e] ? process_deferred_bios+0x230/0x230 [dm_thin_pool]\n [\u003cffffffffa04f7e42\u003e] do_worker+0x52/0x60 [dm_thin_pool]\n [\u003cffffffff81056fa9\u003e] process_one_work+0x129/0x450\n [\u003cffffffff81059b9c\u003e] worker_thread+0x17c/0x3c0\n [\u003cffffffff81059a20\u003e] ? manage_workers+0x120/0x120\n [\u003cffffffff8105eabe\u003e] kthread+0x9e/0xb0\n [\u003cffffffff814ceda4\u003e] kernel_thread_helper+0x4/0x10\n [\u003cffffffff8105ea20\u003e] ? kthread_freezable_should_stop+0x70/0x70\n [\u003cffffffff814ceda0\u003e] ? gs_change+0x13/0x13\n---[ end trace 7e0a523bc5e52692 ]---\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "03aaae7cdc71bc306888440b1f569d463e917b6d",
      "tree": "0f26df484419ac7cfc73b0d13f94a4cf7b701781",
      "parents": [
        "d48b97b403d23f6df0b990cee652bdf9a52337a3"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 12 01:43:12 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:12 2012 +0100"
      },
      "message": "dm thin: reinstate missing mempool_free in cell_release_singleton\n\nFix a significant memory leak inadvertently introduced during\nsimplification of cell_release_singleton() in commit\n6f94a4c45a6f744383f9f695dde019998db3df55 (\"dm thin: fix stacked bi_next\nusage\").\n\nA cell\u0027s hlist_del() must be accompanied by a mempool_free().\nUse __cell_release() to do this, like before.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "38bf1953987c1735f3c9140fca762949a8cae507",
      "tree": "5596d88145226774633d3a2853b6d7caaeffa4f1",
      "parents": [
        "e0268868ba064980488fc8c194db3d8e9fb2959c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri May 04 11:34:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:21:39 2012 -0400"
      },
      "message": "connector/userns: replace netlink uses of cap_raised() with capable()\n\nIn 2009 Philip Reiser notied that a few users of netlink connector\ninterface needed a capability check and added the idiom\ncap_raised(nsp-\u003eeff_cap, CAP_SYS_ADMIN) to a few of them, on the premise\nthat netlink was asynchronous.\n\nIn 2011 Patrick McHardy noticed we were being silly because netlink is\nsynchronous and removed eff_cap from the netlink_skb_params and changed\nthe idiom to cap_raised(current_cap(), CAP_SYS_ADMIN).\n\nLooking at those spots with a fresh eye we should be calling\ncapable(CAP_SYS_ADMIN).  The only reason I can see for not calling capable\nis that it once appeared we were not in the same task as the caller which\nwould have made calling capable() impossible.\n\nIn the initial user_namespace the only difference between between\ncap_raised(current_cap(), CAP_SYS_ADMIN) and capable(CAP_SYS_ADMIN) are a\nfew sanity checks and the fact that capable(CAP_SYS_ADMIN) sets\nPF_SUPERPRIV if we use the capability.\n\nSince we are going to be using root privilege setting PF_SUPERPRIV seems\nthe right thing to do.\n\nThe motivation for this that patch is that in a child user namespace\ncap_raised(current_cap(),...) tests your capabilities with respect to that\nchild user namespace not capabilities in the initial user namespace and\nthus will allow processes that should be unprivielged to use the kernel\nservices that are only protected with cap_raised(current_cap(),..).\n\nTo fix possible user_namespace issues and to just clean up the code\nreplace cap_raised(current_cap(), CAP_SYS_ADMIN) with\ncapable(CAP_SYS_ADMIN).\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b16b1b6cd052acbacc0a15f934bca9b354534d48",
      "tree": "ba5b2e72e04a18a4bd83429f089d16637b9a6343",
      "parents": [
        "69964ea4c7b68c9399f7977aa5b9aa6539a6a98a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri May 04 17:03:18 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri May 04 17:03:18 2012 +1000"
      },
      "message": "md/bitmap: fix calculation of \u0027chunks\u0027 - missing shift.\n\ncommit 61a0d80c \"md/bitmap: discard CHUNK_BLOCK_SHIFT macro\"\nreplaced CHUNK_BLOCK_RATIO() by the same text that was\nreplacing CHUNK_BLOCK_SHIFT() - which is clearly wrong.\n\nThe result is that \u0027chunks\u0027 is often too small by 1,\nwhich can sometimes result in a crash (not sure how).\n\nSo use the correct replacement, and get rid of CHUNK_BLOCK_RATIO\nwhich is no longe used.\n\nReported-by: Karl Newman \u003csiliconfiend@gmail.com\u003e\nTested-by: Karl Newman \u003csiliconfiend@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "30b8aa9172dfeaac6d77897c67ee9f9fc574cdbb",
      "tree": "d950c723e17399fefd104c5eddcf514d7f3c240a",
      "parents": [
        "ed209584c38fb74b7eecc03e5b1bfe674e591bd8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:16 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:16 2012 +1000"
      },
      "message": "md: fix possible corruption of array metadata on shutdown.\n\ncommit c744a65c1e2d59acc54333ce8\n  md: don\u0027t set md arrays to readonly on shutdown.\n\nremoved the possibility of a \u0027BUG\u0027 when data is written to an array\nthat has just been switched to read-only, but also introduced the\npossibility that the array metadata could be corrupted.\n\nIf, when md_notify_reboot gets the mddev lock, the array is\nin a state where it is assembled but hasn\u0027t been started (as can\nhappen if the personality module is not available, or in other unusual\nsituations), then incorrect metadata will be written out making it\nimpossible to re-assemble the array.\n\nSo only call __md_stop_writes() if the array has actually been\nactivated.\n\nThis patch is needed for any stable kernel which has had the above\ncommit applied.\n\nCc: stable@vger.kernel.org\nReported-by: Christoph Nelles \u003cevilazrael@evilazrael.de\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ed209584c38fb74b7eecc03e5b1bfe674e591bd8",
      "tree": "a232bb4fbf3a2e143ad57dfa3acad92418c5b12c",
      "parents": [
        "a9ad8526bb1af0741a5c0e01155dac08e7bdde60"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:14 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:14 2012 +1000"
      },
      "message": "md: don\u0027t call -\u003eadd_disk unless there is good reason.\n\nCommit 7bfec5f35c68121e7b18\n\n   md/raid5: If there is a spare and a want_replacement device, start replacement.\n\ncause md_check_recovery to call -\u003eadd_disk much more often.\nInstead of only when the array is degraded, it is now called whenever\nmd_check_recovery finds anything useful to do, which includes\nupdating the metadata for clean\u003c-\u003edirty transition.\nThis causes unnecessary work, and causes info messages from -\u003eadd_disk\nto be reported much too often.\n\nSo refine md_check_recovery to only do any actual recovery checking\n(including -\u003eadd_disk) if MD_RECOVERY_NEEDED is set.\n\nThis fix is suitable for 3.3.y:\n\nCc: stable@vger.kernel.org\nReported-by: Jan Ceuleers \u003cjan.ceuleers@computer.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a9ad8526bb1af0741a5c0e01155dac08e7bdde60",
      "tree": "4e82b35b644eab0aacc6c7d16b2cb7794f106cb5",
      "parents": [
        "afbaa90b80b1ec66e5137cc3824746bfdf559b18"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Apr 24 10:23:13 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:13 2012 +1000"
      },
      "message": "DM RAID: Use safe version of rdev_for_each\n\nFix segfault caused by using rdev_for_each instead of rdev_for_each_safe\n\nCommit dafb20fa34320a472deb7442f25a0c086e0feb33 mistakenly replaced a safe\niterator with an unsafe one when making some macro changes.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "afbaa90b80b1ec66e5137cc3824746bfdf559b18",
      "tree": "8c0307e41849eef28146343efc4fed75f83a30f1",
      "parents": [
        "f4380a915823dbed0bf8e3cf502ebcf2b7c7f833"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 16:05:06 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 16:05:06 2012 +1000"
      },
      "message": "md/bitmap: prevent bitmap_daemon_work running while initialising bitmap\n\nIf a bitmap is added while the array is active, it is possible\nfor bitmap_daemon_work to run while the bitmap is being\ninitialised.\nThis is particularly a problem if bitmap_daemon_work sees\nbitmap-\u003efilemap as non-NULL before it has been filled in properly.\nSo hold bitmap_info.mutex while filling in -\u003efilemap\nto prevent problems.\n\nThis patch is suitable for any -stable kernel, though it might not\napply cleanly before about 3.1.\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f4380a915823dbed0bf8e3cf502ebcf2b7c7f833",
      "tree": "1326179e1f715f33495066b2fe4b99acf1bbdd96",
      "parents": [
        "9e41dd35b39c2cf40767332b8f914d7afe25cc40"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Thu Apr 12 16:04:47 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 16:04:47 2012 +1000"
      },
      "message": "md/raid1,raid10: Fix calculation of \u0027vcnt\u0027 when processing error recovery.\n\nIf r1bio-\u003esectors % 8 !\u003d 0,then the memcmp and a later\nmemcpy will omit the last bio_vec.\n\nThis is suitable for any stable kernel since 3.1 when bad-block\nmanagement was introduced.\n\nCc: stable@vger.kernel.org\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9e41dd35b39c2cf40767332b8f914d7afe25cc40",
      "tree": "b694a4d27b3fd7beb1881d5ad993303fe7309c59",
      "parents": [
        "5020ad7d143ccfcf8149974096220d59e5572120"
      ],
      "author": {
        "name": "Andrei Warkentin",
        "email": "andrey.warkentin@gmail.com",
        "time": "Thu Apr 12 15:55:21 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 15:55:21 2012 +1000"
      },
      "message": "MD: Bitmap version cleanup.\n\nbitmap_new_disk_sb() would still create V3 bitmap superblock\nwith host-endian layout.\n\nPerhaps I\u0027m confused, but shouldn\u0027t bitmap_new_disk_sb() be\ncreating a V4 bitmap superblock instead, that is portable,\nas per comment in bitmap.h?\n\nSigned-off-by: Andrei Warkentin \u003candrey.warkentin@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "30c273a77c02ed9db52bd51027c812ebf513771e",
      "tree": "70f0b9a4a42b11a35715a42afeab939efea94c14",
      "parents": [
        "fbd06f976a4f69bde837f7307c6ac62d0e8f8704"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Mar 27 14:16:33 2012 -0700"
      },
      "committer": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Apr 10 15:39:18 2012 -0700"
      },
      "message": "dm-crypt: remove per-cpu structure\n\nRemove per-cpu structure and make it per-convert_context instead.\nThis allows moving requests between different cpus.\n\nCRs-Fixed: 339113\n\nChange-Id: Iadc618920c7bdec0b8bbe2accdce1b69dbce5582\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Shashank Mittal \u003cmittals@codeaurora.org\u003e\n"
    },
    {
      "commit": "fbd06f976a4f69bde837f7307c6ac62d0e8f8704",
      "tree": "05a566ef5aeec40f4edfb5469324c1e08db0846e",
      "parents": [
        "815bc97ac977a0cbccbd141f373a730374cd7882"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Mar 27 14:00:17 2012 -0700"
      },
      "committer": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Apr 10 15:02:17 2012 -0700"
      },
      "message": "dm-crypt: move static cipher data out of per-cpu structure\n\nCipher information is static, so it does not have to be in a per-cpu\nstructure.\n\nThis is a preparation for further patches that remove per-cpu structure\naltogether.\n\nChange-Id: If33109eb334549a3499b0a92d7e171a90622ad7a\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Shashank Mittal \u003cmittals@codeaurora.org\u003e\n"
    },
    {
      "commit": "815bc97ac977a0cbccbd141f373a730374cd7882",
      "tree": "04c13dba4c81af5ffd6c3053b94185b231c0815d",
      "parents": [
        "8bfc015229efd9f2e2eb18f03176d1a9d058e3a4"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Mar 27 13:17:56 2012 -0700"
      },
      "committer": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Apr 10 15:02:07 2012 -0700"
      },
      "message": "dm-crypt: Rename pending\n\nThere are two structures that have \"pending\" field.\nThis patch renames it to \"cc_pending\" and \"io_pending\" to reduce confusion\nand ease searching the code.\n\nChange-Id: I0b06e11083951c79f24d9443cff7918d2778a2aa\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Shashank Mittal \u003cmittals@codeaurora.org\u003e\n"
    },
    {
      "commit": "8bfc015229efd9f2e2eb18f03176d1a9d058e3a4",
      "tree": "a0796ddb7cbaf04c8e47fd2eb06d09d39a43a320",
      "parents": [
        "71b41c32bc4dc0be468435fc62e9285ee862e805"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Mar 27 13:16:51 2012 -0700"
      },
      "committer": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Apr 10 15:01:57 2012 -0700"
      },
      "message": "dm-crypt: add missing error handling\n\nThere were cases where error code would be used only if we finish\nprocessing the last sector. If there were other encryption operations\nin flight, error would be ignored and bio would be returned with\nsuccess as if no error happened.\n\nThis bug is present in kcryptd_crypt_write_convert,\nkcryptd_crypt_read_convert and kcryptd_async_done.\n\nThis patch fixes it, setting io-\u003eerror to -EIO always when an\nerror happens.\n\nChange-Id: I4aa7cbebcccff85bdbf9ad9bb70f6f52fc104afe\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Shashank Mittal \u003cmittals@codeaurora.org\u003e\n"
    },
    {
      "commit": "71b41c32bc4dc0be468435fc62e9285ee862e805",
      "tree": "7ae94df0bb583935832f811cab9921da52cf6570",
      "parents": [
        "cc04ed89060e2a09bba9f912e9aa1bf0c82aff93"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Mar 27 13:15:32 2012 -0700"
      },
      "committer": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Apr 10 15:01:44 2012 -0700"
      },
      "message": "dm-crypt: fix possible mempool deadlock\n\nThis patch fixes a possible deadlock in mempool in dm-crypt.\n\nCurrently, dm-crypt reserves a mempool of MIN_BIO_PAGES reserved\npages. It allocates first MIN_BIO_PAGES with non-failing allocation\n(the allocation cannot fail and waits until the mempool is refilled).\nFurther pages are allocated with different gfp flags that allow\nfailing.\n\nBecause allocations may be done in parallel, this code can deadlock.\nExample:\nThere are two processes, each tries to allocate MIN_BIO_PAGES and\nthe processes run simultaneously.\nIt may end up in a situation where each process allocates\n(MIN_BIO_PAGES / 2) pages. The mempool is exhausted. Each process\nwaits for more pages to be freed to the mempool, which never happens.\n\nTo avoid this deadlock scenario, this patch changes the code so that\nonly the first page is allocated with non-failing gfp mask. Allocation\nof further pages may fail.\n\nChange-Id: I9e64af1e016f13914aa46c3f1be8b5cd13cb3aa1\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Shashank Mittal \u003cmittals@codeaurora.org\u003e\n"
    },
    {
      "commit": "5020ad7d143ccfcf8149974096220d59e5572120",
      "tree": "0124b6866ecd63b3a8913a6661e1d96699d60b71",
      "parents": [
        "c6d2e084c7411f61f2b446d94989e5aaf9879b0f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 01:39:05 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:39:23 2012 +1000"
      },
      "message": "md/raid1,raid10: don\u0027t compare excess byte during consistency check.\n\nWhen comparing two pages read from different legs of a mirror, only\ncompare the bytes that were read, not the whole page.\n\nIn most cases we read a whole page, but in some cases with\nbad blocks or odd sizes devices we might read fewer than that.\n\nThis bug has been present \"forever\" but at worst it might cause\na report of two many mismatches and generate a little bit\nextra resync IO, so there is no need to back-port to -stable\nkernels.\n\nReported-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c6d2e084c7411f61f2b446d94989e5aaf9879b0f",
      "tree": "521616d7bd6ff7eb38217bed1b81c5960fa2023d",
      "parents": [
        "a42f9d83b5c05dc6e678a1f0cd9767502c2c58de"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 01:16:59 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:37:38 2012 +1000"
      },
      "message": "md/raid5: Fix a bug about judging if the operation is syncing or replacing\n\nWhen create a raid5 using assume-clean and echo check or repair to\nsync_action.Then component disks did not operated IO but the raid\ncheck/resync faster than normal.\nBecause the judgement in function analyse_stripe():\n\t\tif (do_recovery ||\n\t\t    sh-\u003esector \u003e\u003d conf-\u003emddev-\u003erecovery_cp)\n\t\t\ts-\u003esyncing \u003d 1;\n\t\telse\n\t\t\ts-\u003ereplacing \u003d 1;\nWhen check or repair,the recovery_cp \u003d\u003d MaxSectore,so syncing equal zero\nnot one.\n\nThis bug was introduced by commit 9a3e1101b827\n    md/raid5:  detect and handle replacements during recovery.\nso this patch is suitable for 3.3-stable.\n\nCc: stable@vger.kernel.org\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a42f9d83b5c05dc6e678a1f0cd9767502c2c58de",
      "tree": "e1864a59287f1441a4b016938efea5ca30a57df1",
      "parents": [
        "24b961f811a3e790a9b93604d2594bfb6cce4fa4"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 01:04:19 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:37:33 2012 +1000"
      },
      "message": "md/raid1:Remove unnecessary rcu_dereference(conf-\u003emirrors[i].rdev).\n\nBecause rde-\u003enr_pending \u003e 0,so can not remove this disk.\nAnd in any case, we aren\u0027t holding rcu_read_lock()\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "24b961f811a3e790a9b93604d2594bfb6cce4fa4",
      "tree": "8cde643f6d3d142538d8e2499e65b368f5320bcc",
      "parents": [
        "18b9837ea0dc3cf844c6c4196871ce91d047bddb"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "Jes.Sorensen@redhat.com",
        "time": "Sun Apr 01 23:48:38 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:37:26 2012 +1000"
      },
      "message": "md: Avoid OOPS when reshaping raid1 to raid0\n\nraid1 arrays do not have the notion of chunk size. Calculate the\nlargest chunk sector size we can use to avoid a divide by zero OOPS\nwhen aligning the size of the new array to the chunk size.\n\nSigned-off-by: Jes Sorensen \u003cJes.Sorensen@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "18b9837ea0dc3cf844c6c4196871ce91d047bddb",
      "tree": "de8be80b767d144405aeeaf7238c723f575b4b40",
      "parents": [
        "5220ea1e640869e70f894837678315c878c651fd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Apr 01 23:48:38 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:36:17 2012 +1000"
      },
      "message": "md/raid5: fix handling of bad blocks during recovery.\n\n1/ We can only treat a known-bad-block like a read-error if we\n   have the data that belongs in that block.  So fix that test.\n\n2/ If we cannot recovery a stripe due to insufficient data,\n   don\u0027t tell \"md_done_sync\" that the sync failed unless we really\n   did fail something.  If we successfully record bad blocks,\n   that is success.\n\nReported-by: \"majianpeng\" \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5220ea1e640869e70f894837678315c878c651fd",
      "tree": "b18af9d438b634e81bd5d87c2323ae58d52eaf73",
      "parents": [
        "0366ef847581d692e197b88825867ca9ee00e358"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 09:48:38 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 09:48:38 2012 +1000"
      },
      "message": "md/raid1: If md_integrity_register() failed,run() must free the mem\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0366ef847581d692e197b88825867ca9ee00e358",
      "tree": "7faec66efc6e77b24dd349a42c7dabefbc1964be",
      "parents": [
        "98d5561bfbc3c7a53d6abc1812a2bd5344d36fa3"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "message": "md/raid0: If md_integrity_register() fails, raid0_run() must free the mem.\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "98d5561bfbc3c7a53d6abc1812a2bd5344d36fa3",
      "tree": "6397046f8dc7a82986ebd7e442491dc118d1a850",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "message": "md/linear: If md_integrity_register() fails, linear_run() must free the mem.\n\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a4ffc152198efba2ed9e6eac0eb97f17bfebce85",
      "tree": "1901c86e3f4dbfcc3bd753888951a51430f0cde2",
      "parents": [
        "a66cc28f53a7e9679dedb2bc66ddb0e0c6bdd0ee"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:43:38 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:43:38 2012 +0100"
      },
      "message": "dm: add verity target\n\nThis device-mapper target creates a read-only device that transparently\nvalidates the data on one underlying device against a pre-generated tree\nof cryptographic checksums stored on a second device.\n\nTwo checksum device formats are supported: version 0 which is already\nshipping in Chromium OS and version 1 which incorporates some\nimprovements.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nSigned-off-by: Elly Jones \u003cellyjones@chromium.org\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\nCc: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a66cc28f53a7e9679dedb2bc66ddb0e0c6bdd0ee",
      "tree": "0d1037562bd8a47f6e9d31d7ed56e24c7aa98c66",
      "parents": [
        "67e2e2b281812b5caf4923a38aadc6b89e34f064"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "message": "dm bufio: prefetch\n\nThis patch introduces a new function dm_bufio_prefetch. It prefetches\nthe specified range of blocks into dm-bufio cache without waiting\nfor i/o completion.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "67e2e2b281812b5caf4923a38aadc6b89e34f064",
      "tree": "c04255840de5e70a0aa2880d1f1c8bfe1b2e7817",
      "parents": [
        "104655fd4dcebd50068ef30253a001da72e3a081"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "message": "dm thin: add pool target flags to control discard\n\nAdd dm thin target arguments to control discard support.\n\nignore_discard: Disables discard support\n\nno_discard_passdown: Don\u0027t pass discards down to the underlying data\ndevice, but just remove the mapping within the thin provisioning target.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "104655fd4dcebd50068ef30253a001da72e3a081",
      "tree": "ce4cc70f3ecf643d1c63948f902bc135b17750c7",
      "parents": [
        "eb2aa48d4eb7aee63cba201bf47641dad3e92250"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: support discards\n\nSupport discards in the thin target.\n\nOn discard the corresponding mapping(s) are removed from the thin\ndevice.  If the associated block(s) are no longer shared the discard\nis passed to the underlying device.\n\nAll bios other than discards now have an associated deferred_entry\nthat is saved to the \u0027all_io_entry\u0027 in endio_hook.  When non-discard\nIO completes and associated mappings are quiesced any discards that\nwere deferred, via ds_add_work() in process_discard(), will be queued\nfor processing by the worker thread.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n\ndrivers/md/dm-thin.c |  173 ++++++++++++++++++++++++++++++++++++++++++++++----\n drivers/md/dm-thin.c |  172 ++++++++++++++++++++++++++++++++++++++++++++++-----\n 1 file changed, 158 insertions(+), 14 deletions(-)\n"
    },
    {
      "commit": "eb2aa48d4eb7aee63cba201bf47641dad3e92250",
      "tree": "3e160010319f6c4eb30770d07d6fb089955f5704",
      "parents": [
        "6efd6e83092cd4a7532270bc843de90bb93f6683"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: prepare to support discard\n\nThis patch contains the ground work needed for dm-thin to support discard.\n\n  - Adds endio function that replaces shared_read_endio.\n\n  - Introduce an explicit \u0027quiesced\u0027 flag into the new_mapping structure.\n    Before, this was implicitly indicated by m-\u003elist being empty.\n\n  - The map_info-\u003eptr remains constant for the duration of a bio\u0027s trip\n    through the thin target.  Make it easier to reason about it.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6efd6e83092cd4a7532270bc843de90bb93f6683",
      "tree": "129b9de5d03a11f0bf02feb3743a10e4fe8561d5",
      "parents": [
        "2dd9c257fbc243aa76ee6db0bb8371f9f74fad2d"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: use dm_target_offset\n\nUse dm_target_offset wrapper instead of referencing the awkward ti-\u003ebegin\nexplicitly.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2dd9c257fbc243aa76ee6db0bb8371f9f74fad2d",
      "tree": "51c82de6e41b4f53f9d41dfe1211c4feba55dc6d",
      "parents": [
        "c4a69ecdb463a901b4645230613961e134e897cd"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: support read only external snapshot origins\n\nSupport the use of an external _read only_ device as an origin for a thin\ndevice.\n\nAny read to an unprovisioned area of the thin device will be passed\nthrough to the origin.  Writes trigger allocation of new blocks as\nusual.\n\nOne possible use case for this would be VM hosts that want to run\nguests on thinly-provisioned volumes but have the base image on another\ndevice (possibly shared between many VMs).\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c4a69ecdb463a901b4645230613961e134e897cd",
      "tree": "c53e0a569f3d390ea2a97f964225d5383c6401ec",
      "parents": [
        "71fd5ae25d88841c08d5bbea90c0f0a12ca05509"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: relax hard limit on the maximum size of a metadata device\n\nThe thin metadata format can only make use of a device that is \u003c\u003d\nTHIN_METADATA_MAX_SECTORS (currently 15.9375 GB).  Therefore, there is no\npractical benefit to using a larger device.\n\nHowever, it may be that other factors impose a certain granularity for\nthe space that is allocated to a device (E.g. lvm2 can impose a coarse\ngranularity through the use of large, \u003e\u003d 1 GB, physical extents).\n\nRather than reject a larger metadata device, during thin-pool device\nconstruction, switch to allowing it but issue a warning if a device\nlarger than THIN_METADATA_MAX_SECTORS_WARNING (16 GB) is\nprovided.  Any space over 15.9375 GB will not be used.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "71fd5ae25d88841c08d5bbea90c0f0a12ca05509",
      "tree": "763ec9657bd25e4d42f1f6774faa65166364eede",
      "parents": [
        "905e51b39a5558706a6ed883fe104de3d417050b"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "message": "dm persistent data: remove space map ref_count entries if redundant\n\nSave space by removing entries from the space map ref_count tree if\nthey\u0027re no longer needed.\n\nRef counts are stored in two places: a bitmap if the ref_count is\nbelow 3, or a btree of uint32_t if 3 or above.\n\nWhen a ref_count that was above 3 drops below we can remove it from\nthe tree and save some metadata space.  This removal was commented out\nbefore because I was unsure why this was causing under-populated btree\nnodes.  Earlier patches have fixed this issue.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "905e51b39a5558706a6ed883fe104de3d417050b",
      "tree": "d8e1d9fcdba66942333f099618e6acc5be238538",
      "parents": [
        "31998ef19385c944600d9a981b96252f98204bee"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "message": "dm thin: commit outstanding data every second\n\nCommit unwritten data every second to prevent too much building up.\n\nReleased blocks don\u0027t become available until after the next commit\n(for crash resilience).  Prior to this patch commits were only\ntriggered by a message to the target or a REQ_{FLUSH,FUA} bio.  This\nallowed far too big a position to build up.\n\nThe interval is hard-coded to 1 second.  This is a sensible setting.\nI\u0027m not making this user configurable, since there isn\u0027t much to be\ngained by tweaking this - and a lot lost by setting it far too high.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "31998ef19385c944600d9a981b96252f98204bee",
      "tree": "ab757b8d6e3d349cf42827354e594687dcf6c5c8",
      "parents": [
        "0447568fc51e0268e201f7086d2450cf986e0411"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "message": "dm: reject trailing characters in sccanf input\n\nDevice mapper uses sscanf to convert arguments to numbers. The problem is that\nthe way we use it ignores additional unmatched characters in the scanned string.\n\nFor example, this `if (sscanf(string, \"%d\", \u0026number) \u003d\u003d 1)\u0027 will match a number,\nbut also it will match number with some garbage appended, like \"123abc\".\n\nAs a result, device mapper accepts garbage after some numbers. For example\nthe command `dmsetup create vg1-new --table \"0 16384 linear 254:1bla 34816bla\"\u0027\nwill pass without an error.\n\nThis patch fixes all sscanf uses in device mapper. It appends \"%c\" with\na pointer to a dummy character variable to every sscanf statement.\n\nThe construct `if (sscanf(string, \"%d%c\", \u0026number, \u0026dummy) \u003d\u003d 1)\u0027 succeeds\nonly if string is a null-terminated number (optionally preceded by some\nwhitespace characters). If there is some character appended after the number,\nsscanf matches \"%c\", writes the character to the dummy variable and returns 2.\nWe check the return value for 1 and consequently reject numbers with some\ngarbage appended.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0447568fc51e0268e201f7086d2450cf986e0411",
      "tree": "879a6e4ae0b156f05487ac2eb058920e83a0285e",
      "parents": [
        "fef838cc1ac34e599c74888274506d76767f3098"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "message": "dm raid: handle failed devices during start up\n\nThe dm-raid code currently fails to create a RAID array if any of the\nsuperblocks cannot be read.  This was an oversight as there is already\ncode to handle this case if the values (\u0027- -\u0027) were provided for the\nfailed array position.\n\nWith this patch, if a superblock cannot be read, the array position\u0027s\nfields are initialized as though \u0027- -\u0027 was set in the table.  That is,\nthe device is failed and the position should not be used, but if there\nis sufficient redundancy, the array should still be activated.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fef838cc1ac34e599c74888274506d76767f3098",
      "tree": "197179f2408018f66f5ca60b1c48bc4bea458072",
      "parents": [
        "a3aefb395e4f321c8b1314c88f1123624adcf743"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm thin metadata: pass correct space map to dm_sm_root_size\n\nFix a harmless typo.\n\nThe root is a chunk of data that gets written to the superblock.  This\ndata is used to recreate the space map when opening a metadata area.\nWe have two space maps; one tracking space on the metadata device and\none of the data device.  Both of these use the same format for their\nroot, so this typo was harmless.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a3aefb395e4f321c8b1314c88f1123624adcf743",
      "tree": "cedb3dbc643009cdba3c927b499e32e3247f7e5e",
      "parents": [
        "466891f9959b500e037836737c064a72f2bbe8cf"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm persistent data: remove redundant value_size arg from value_ptr\n\nNow that the value_size is held within every node of the btrees we can\nremove this argument from value_ptr().\n\nFor the last few months a BUG_ON has been checking this argument is\nthe same as that held in the node.  No issues were reported.  So this\nis a safe change.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "466891f9959b500e037836737c064a72f2bbe8cf",
      "tree": "d50448abe03d595fb5f00671ff7aec9a35e3cdb0",
      "parents": [
        "4d7b38b7d944a79da3793b6c92d38682f3905ac9"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm mpath: detect invalid map_context\n\nThe map_context pointer should always be set. However, we have reports\nthat upon requeuing it is not set correctly.  So add set and clear\nfunctions with a BUG_ON() to track the issue properly.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Hannes Reinecke \u003chare@suse.de\u003e\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Dave Wysochanski \u003cdwysocha@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4d7b38b7d944a79da3793b6c92d38682f3905ac9",
      "tree": "88f187c760c0dfd3cb8d7957a635254b3fcabd36",
      "parents": [
        "574ce07eb0014069f1da763c219bb30ea4c266ec"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm: clear bi_end_io on remapping failure\n\nAs a precaution, set bi_end_io to NULL when failing to remap.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "574ce07eb0014069f1da763c219bb30ea4c266ec",
      "tree": "f5f5543a30f2e2937cfd96dea28ae17f4b0c9544",
      "parents": [
        "fe878f34df89ad4af758f40bbec829807dc93a00"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm table: simplify call to free_devices\n\nfree_devices in dm_table.c already uses list_for_each(), so we don\u0027t\nneed to check if the list is empty.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fe878f34df89ad4af758f40bbec829807dc93a00",
      "tree": "eaa377c640fd595391491725ab477f29062374b1",
      "parents": [
        "035220b33d6865d81d5433600def53373cca7127"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm thin: correct comments\n\nRemove documentation for unimplemented \u0027trim\u0027 message.\n\nI\u0027d planned a \u0027trim\u0027 target message for shrinking thin devices, but\nthis is better handled via the discard ioctl.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "035220b33d6865d81d5433600def53373cca7127",
      "tree": "9f72ff60d07e171b79f996da0c463052201ef2fe",
      "parents": [
        "e0b215da8fde99b6a9d82ee4c3600ec223cc7959"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm raid: no longer experimental\n\nThe dm raid module (using md) is becoming the preferred way of creating long-lived\nmirrors through userspace LVM so remove the EXPERIMENTAL tag.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e0b215da8fde99b6a9d82ee4c3600ec223cc7959",
      "tree": "60a6d7fd27dddaf28a2ce42cc5ec444db0a5c6b5",
      "parents": [
        "854ecaad80223d3c3e32da3ca0ca66cd4a695085"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm uevent: no longer experimental\n\nDrop EXPERIMENTAL tag from dm-uevent.\n\nIt\u0027s not changed for a while and some userspace tools are relying upon it.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b0988900bae9ecf968a8a8d086a9eec671a9517a",
      "tree": "9dd34ec6f4563b78ac454f3691757dece46c1926",
      "parents": [
        "6f94a4c45a6f744383f9f695dde019998db3df55"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "message": "dm persistent data: fix btree rebalancing after remove\n\nWhen we remove an entry from a node we sometimes rebalance with it\u0027s\ntwo neighbours.  This wasn\u0027t being done correctly; in some cases\nentries have to move all the way from the right neighbour to the left\nneighbour, or vice versa.  This patch pretty much re-writes the\nbalancing code to fix it.\n\nThis code is barely used currently; only when you delete a thin\ndevice, and then only if you have hundreds of them in the same pool.\nOnce we have discard support, which removes mappings, this will be used\nmuch more heavily.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f94a4c45a6f744383f9f695dde019998db3df55",
      "tree": "7e4982a066935a2434780b5e34fb24fb15e533f0",
      "parents": [
        "72c6e7afc43e19f68a31dea204fc366624d6eee9"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "message": "dm thin: fix stacked bi_next usage\n\nAvoid using the bi_next field for the holder of a cell when deferring\nbios because a stacked device below might change it.  Store the\nholder in a new field in struct cell instead.\n\nWhen a cell is created, the bio that triggered creation (the holder) was\nadded to the same bio list as subsequent bios.  In some cases we pass\nthis holder bio directly to devices underneath.  If those devices use\nthe bi_next field there will be trouble...\n\nThis also simplifies some code that had to work out which bio was the\nholder.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "72c6e7afc43e19f68a31dea204fc366624d6eee9",
      "tree": "888dfad9bcbcff78cf707e63b3c4389b589b8c4d",
      "parents": [
        "aeb2deae2660a1773c83d3c6e9e6575daa3855d6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "message": "dm crypt: add missing error handling\n\nAlways set io-\u003eerror to -EIO when an error is detected in dm-crypt.\n\nThere were cases where an error code would be set only if we finish\nprocessing the last sector. If there were other encryption operations in\nflight, the error would be ignored and bio would be returned with\nsuccess as if no error happened.\n\nThis bug is present in kcryptd_crypt_write_convert, kcryptd_crypt_read_convert\nand kcryptd_async_done.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: stable@kernel.org\nReviewed-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aeb2deae2660a1773c83d3c6e9e6575daa3855d6",
      "tree": "7bd2b85fa918285dbc6e857993fb3c20ec108554",
      "parents": [
        "aadbe266f2f89ccc68b52f4effc7b3a8b29521ef"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "message": "dm crypt: fix mempool deadlock\n\nThis patch fixes a possible deadlock in dm-crypt\u0027s mempool use.\n\nCurrently, dm-crypt reserves a mempool of MIN_BIO_PAGES reserved pages.\nIt allocates first MIN_BIO_PAGES with non-failing allocation (the allocation\ncannot fail and waits until the mempool is refilled). Further pages are\nallocated with different gfp flags that allow failing.\n\nBecause allocations may be done in parallel, this code can deadlock. Example:\nThere are two processes, each tries to allocate MIN_BIO_PAGES and the processes\nrun simultaneously.\nIt may end up in a situation where each process allocates (MIN_BIO_PAGES / 2)\npages. The mempool is exhausted. Each process waits for more pages to be freed\nto the mempool, which never happens.\n\nTo avoid this deadlock scenario, this patch changes the code so that only\nthe first page is allocated with non-failing gfp mask. Allocation of further\npages may fail.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aadbe266f2f89ccc68b52f4effc7b3a8b29521ef",
      "tree": "94215da325017418a1420cebc7922ebfbebcfc69",
      "parents": [
        "437538267b672f9320833907f1b5acbb2605f4be"
      ],
      "author": {
        "name": "Andrei Warkentin",
        "email": "andrey.warkentin@gmail.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "message": "dm exception store: fix init error path\n\nCall the correct exit function on failure in dm_exception_store_init.\n\nSigned-off-by: Andrei Warkentin \u003candrey.warkentin@gmail.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "267d7b23dd62f6ec55e0fba777e456495c308fc7",
      "tree": "5c9fe0f07d5b87029b9c07eb003596c05d161a8f",
      "parents": [
        "28f23d1f3b6a6078312b6e9585e583cc7326fe22",
        "ecb178bb2b154a40cfae9fa4c42e62ccfa81ac6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:29:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:29:50 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4\u0027 of git://neil.brown.name/md\n\nPull md updates for 3.4 from Neil Brown:\n \"Mostly tidying up code in preparation for some bigger changes next\n  time.\n\n  A few bug fixes tagged for -stable.\n\n  Main functionality change is that some RAID10 arrays can now grow to\n  use extra space that may have been made available on the individual\n  devices.\"\n\nFixed up trivial conflicts with the k[un]map_atomic() cleanups in\ndrivers/md/bitmap.c.\n\n* tag \u0027md-3.4\u0027 of git://neil.brown.name/md: (22 commits)\n  md: Add judgement bb-\u003eunacked_exist in function md_ack_all_badblocks().\n  md: fix clearing of the \u0027changed\u0027 flags for the bad blocks list.\n  md/bitmap: discard CHUNK_BLOCK_SHIFT macro\n  md/bitmap: remove unnecessary indirection when allocating.\n  md/bitmap: remove some pointless locking.\n  md/bitmap: change a \u0027goto\u0027 to a normal \u0027if\u0027 construct.\n  md/bitmap: move printing of bitmap status to bitmap.c\n  md/bitmap: remove some unused noise from bitmap.h\n  md/raid10 - support resizing some RAID10 arrays.\n  md/raid1: handle merge_bvec_fn in member devices.\n  md/raid10: handle merge_bvec_fn in member devices.\n  md: add proper merge_bvec handling to RAID0 and Linear.\n  md: tidy up rdev_for_each usage.\n  md/raid1,raid10: avoid deadlock during resync/recovery.\n  md/bitmap: ensure to load bitmap when creating via sysfs.\n  md: don\u0027t set md arrays to readonly on shutdown.\n  md: allow re-add to failed arrays.\n  md/raid5: use atomic_dec_return() instead of atomic_dec() and atomic_read().\n  md: Use existed macros instead of numbers\n  md/raid5: removed unused \u0027added_devices\u0027 variable.\n  ...\n"
    },
    {
      "commit": "9f3938346a5c1fa504647670edb5fea5756cfb00",
      "tree": "7cf6d24d6b076c8db8571494984924cac03703a2",
      "parents": [
        "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
        "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull kmap_atomic cleanup from Cong Wang.\n\nIt\u0027s been in -next for a long time, and it gets rid of the (no longer\nused) second argument to k[un]map_atomic().\n\nFix up a few trivial conflicts in various drivers, and do an \"evil\nmerge\" to catch some new uses that have come in since Cong\u0027s tree.\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux: (59 commits)\n  feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n  highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n  drbd: remove the second argument of k[un]map_atomic()\n  zcache: remove the second argument of k[un]map_atomic()\n  gma500: remove the second argument of k[un]map_atomic()\n  dm: remove the second argument of k[un]map_atomic()\n  tomoyo: remove the second argument of k[un]map_atomic()\n  sunrpc: remove the second argument of k[un]map_atomic()\n  rds: remove the second argument of k[un]map_atomic()\n  net: remove the second argument of k[un]map_atomic()\n  mm: remove the second argument of k[un]map_atomic()\n  lib: remove the second argument of k[un]map_atomic()\n  power: remove the second argument of k[un]map_atomic()\n  kdb: remove the second argument of k[un]map_atomic()\n  udf: remove the second argument of k[un]map_atomic()\n  ubifs: remove the second argument of k[un]map_atomic()\n  squashfs: remove the second argument of k[un]map_atomic()\n  reiserfs: remove the second argument of k[un]map_atomic()\n  ocfs2: remove the second argument of k[un]map_atomic()\n  ntfs: remove the second argument of k[un]map_atomic()\n  ...\n"
    },
    {
      "commit": "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
      "tree": "7211df5704b743a7667159748c670a9744164482",
      "parents": [
        "d464c92b5234227c1698862a1906827e2e398ae0",
        "f1f996b66cc3908a8f5ffccc2ff41840e92f3b10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"It\u0027s indeed trivial -- mostly documentation updates and a bunch of\n  typo fixes from Masanari.\n\n  There are also several linux/version.h include removals from Jesper.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)\n  kcore: fix spelling in read_kcore() comment\n  constify struct pci_dev * in obvious cases\n  Revert \"char: Fix typo in viotape.c\"\n  init: fix wording error in mm_init comment\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  Revert \"power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c\"\n  writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header\n  writeback: fix typo in the writeback_control comment\n  Documentation: Fix multiple typo in Documentation\n  tpm_tis: fix tis_lock with respect to RCU\n  Revert \"media: Fix typo in mixer_drv.c and hdmi_drv.c\"\n  Doc: Update numastat.txt\n  qla4xxx: Add missing spaces to error messages\n  compiler.h: Fix typo\n  security: struct security_operations kerneldoc fix\n  Documentation: broken URL in libata.tmpl\n  Documentation: broken URL in filesystems.tmpl\n  mtd: simplify return logic in do_map_probe()\n  mm: fix comment typo of truncate_inode_pages_range\n  power: bq27x00: Fix typos in comment\n  ...\n"
    },
    {
      "commit": "c2e022cb654fa6595238dc52311a85e6444da1f7",
      "tree": "f3dba0008bb940e3b8c6fcd81b0f29004de06c1c",
      "parents": [
        "c58e0377d61e209600def7d4d9ae535ea94bc210"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Nov 28 13:26:02 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "dm: remove the second argument of k[un]map_atomic()\n\nAcked-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "b2f46e6882564897f6ea3ad904f0a65dc1c6cb3b",
      "tree": "e7c664de2956945c0c37b4895b134253196d006a",
      "parents": [
        "2a156d094d590e1cb946d1c353f1c1a89013f822"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Nov 28 13:25:44 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:18 2012 +0800"
      },
      "message": "md: remove the second argument of k[un]map_atomic()\n\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "ecb178bb2b154a40cfae9fa4c42e62ccfa81ac6b",
      "tree": "a3a6ff71d28069f6eef78a4f24f7f9c385a086a7",
      "parents": [
        "d0962936bff659d20522555b517582a2715fd23f"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Mar 19 12:46:42 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:42 2012 +1100"
      },
      "message": "md: Add judgement bb-\u003eunacked_exist in function md_ack_all_badblocks().\n\nIf there are no unacked bad blocks, then there is no point searching\nfor them to acknowledge them.\n\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d0962936bff659d20522555b517582a2715fd23f",
      "tree": "dc9654b2e2c7b7db2b8f2a14f829d5f807c7342e",
      "parents": [
        "61a0d80ce4ab5b4fb9ecb38f1fb19654778b71ed"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "message": "md: fix clearing of the \u0027changed\u0027 flags for the bad blocks list.\n\nIn super_1_sync (the first hunk) we need to clear \u0027changed\u0027 before\nchecking read_seqretry(), otherwise we might race with other code\nadding a bad block and so won\u0027t retry later.\n\nIn md_update_sb (the second hunk), in the case where there is no\nmetadata (neither persistent nor external), we treat any bad blocks as\nan error.  However we need to clear the \u0027changed\u0027 flag before calling\nmd_ack_all_badblocks, else it won\u0027t do anything.\n\nThis patch is suitable for -stable release 3.0 and later.\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "61a0d80ce4ab5b4fb9ecb38f1fb19654778b71ed",
      "tree": "21631162d46575db6645636d1c18b8797247d0c9",
      "parents": [
        "792a1d4bbf960000f066358f0a8c6e769c8c72bc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "message": "md/bitmap: discard CHUNK_BLOCK_SHIFT macro\n\nBe redefining -\u003echunkshift as the shift from sectors to chunks rather\nthan bytes to chunks, we can just use \"bitmap-\u003echunkshift\" which is\nshorter than the macro call, and less indirect.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "792a1d4bbf960000f066358f0a8c6e769c8c72bc",
      "tree": "97e9a5c0854551c3fa80e88851ad3317af24ca13",
      "parents": [
        "5a6c824ebb7c9f8dbbc92ffd3528e6366cad1a54"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "message": "md/bitmap: remove unnecessary indirection when allocating.\n\nThese funcitons don\u0027t add anything useful except possibly the trace\npoints, and I don\u0027t think they are worth the extra indirection.\nSo remove them.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5a6c824ebb7c9f8dbbc92ffd3528e6366cad1a54",
      "tree": "e78d8527ae9e7be05001ed12f1cad01f8719bde0",
      "parents": [
        "278c1ca2f254d0695d2eba79793d20ce785323ea"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: remove some pointless locking.\n\nThere is nothing gained by holding a lock while we check if a pointer\nis NULL or not.  If there could be a race, then it could become NULL\nimmediately after the unlock - but there is no race here.\n\nSo just remove the locking.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "278c1ca2f254d0695d2eba79793d20ce785323ea",
      "tree": "42be282251b17c16e030d7083eef4bbeefe60b41",
      "parents": [
        "57148964d946614ffc6621539096ded1e7d896ab"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: change a \u0027goto\u0027 to a normal \u0027if\u0027 construct.\n\nThe use of a goto makes the control flow more obscure here.\n\nSo make it a normal:\n  if (x) {\n     Y;\n  }\n\nNo functional change.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "57148964d946614ffc6621539096ded1e7d896ab",
      "tree": "d4bdadf58d740fcdb3c65063a5706cc3902f2b9b",
      "parents": [
        "4ba97dff719b4cbeb7a4f6beddd2feb7404102d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: move printing of bitmap status to bitmap.c\n\nThe part of /proc/mdstat which describes the bitmap should really\nbe generated by code in bitmap.c.  So move it there.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4ba97dff719b4cbeb7a4f6beddd2feb7404102d8",
      "tree": "3d8e2afc4d20405a88fb70e7cd494452944b3a41",
      "parents": [
        "006a09a0ae0a494473a8cd82c8d1d653e37e6663"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: remove some unused noise from bitmap.h\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "006a09a0ae0a494473a8cd82c8d1d653e37e6663",
      "tree": "169c59f77ef89e1c7cfb727249d60de88370fe79",
      "parents": [
        "6b740b8d79252f13bcb7e5d3c1d43157e78a81e7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/raid10 - support resizing some RAID10 arrays.\n\n\u0027resizing\u0027 an array in this context means making use of extra\nspace that has become available in component devices, not adding new\ndevices.\nIt also includes shrinking the array to take up less space of\ncomponent devices.\n\nThis is not supported for array with a \u0027far\u0027 layout.  However\nfor \u0027near\u0027 and \u0027offset\u0027 layout arrays, adding and removing space at\nthe end of the devices is easy to support, and this patch provides\nthat support.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6b740b8d79252f13bcb7e5d3c1d43157e78a81e7",
      "tree": "4b99f8fb395e7a205a85766d1bd241dce39c4337",
      "parents": [
        "050b66152f87c79e8d66aed0e7996f9336462d5f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md/raid1: handle merge_bvec_fn in member devices.\n\nCurrently we don\u0027t honour merge_bvec_fn in member devices so if there\nis one, we force all requests to be single-page at most.\nThis is not ideal.\n\nSo create a raid1 merge_bvec_fn to check that function in children\nas well.\n\nThis introduces a small problem.  There is no locking around calls\nthe -\u003emerge_bvec_fn and subsequent calls to -\u003emake_request.  So a\ndevice added between these could end up getting a request which\nviolates its merge_bvec_fn.\n\nCurrently the best we can do is synchronize_sched().  This will work\nproviding no preemption happens.  If there is is preemption, we just\nhave to hope that new devices are largely consistent with old devices.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "050b66152f87c79e8d66aed0e7996f9336462d5f",
      "tree": "44d100c2eadf2a56794e7b526abeb21d1019baa1",
      "parents": [
        "ba13da47ffa202784355561f72160a41350e95cc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md/raid10: handle merge_bvec_fn in member devices.\n\nCurrently we don\u0027t honour merge_bvec_fn in member devices so if there\nis one, we force all requests to be single-page at most.\nThis is not ideal.\n\nSo enhance the raid10 merge_bvec_fn to check that function in children\nas well.\n\nThis introduces a small problem.  There is no locking around calls\nthe -\u003emerge_bvec_fn and subsequent calls to -\u003emake_request.  So a\ndevice added between these could end up getting a request which\nviolates its merge_bvec_fn.\n\nCurrently the best we can do is synchronize_sched().  This will work\nproviding no preemption happens.  If there is preemption, we just\nhave to hope that new devices are largely consistent with old devices.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ba13da47ffa202784355561f72160a41350e95cc",
      "tree": "9b60f27ab89e4036df65d0dc3bf52b7420f83a50",
      "parents": [
        "dafb20fa34320a472deb7442f25a0c086e0feb33"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md: add proper merge_bvec handling to RAID0 and Linear.\n\nThese personalities currently set a max request size of one page\nwhen any member device has a merge_bvec_fn because they don\u0027t\nbother to call that function.\n\nThis causes extra works in splitting and combining requests.\n\nSo make the extra effort to call the merge_bvec_fn when it exists\nso that we end up with larger requests out the bottom.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dafb20fa34320a472deb7442f25a0c086e0feb33",
      "tree": "2ff501805f8a6d08119f1f1a7248f579d52e491b",
      "parents": [
        "d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md: tidy up rdev_for_each usage.\n\nmd.h has an \u0027rdev_for_each()\u0027 macro for iterating the rdevs in an\nmddev.  However it uses the \u0027safe\u0027 version of list_for_each_entry,\nand so requires the extra variable, but doesn\u0027t include \u0027safe\u0027 in the\nname, which is useful documentation.\n\nConsequently some places use this safe version without needing it, and\nmany use an explicity list_for_each entry.\n\nSo:\n - rename rdev_for_each to rdev_for_each_safe\n - create a new rdev_for_each which uses the plain\n   list_for_each_entry,\n - use the \u0027safe\u0027 version only where needed, and convert all other\n   list_for_each_entry calls to use rdev_for_each.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf",
      "tree": "a9112351e8ddd2866afd8687b645a1c5bf574ee7",
      "parents": [
        "4474ca42e2577563a919fd3ed782e2ec55bf11a2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:38 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:38 2012 +1100"
      },
      "message": "md/raid1,raid10: avoid deadlock during resync/recovery.\n\nIf RAID1 or RAID10 is used under LVM or some other stacking\nblock device, it is possible to enter a deadlock during\nresync or recovery.\nThis can happen if the upper level block device creates\ntwo requests to the RAID1 or RAID10.  The first request gets\nprocessed, blocks recovery and queue requests for underlying\nrequests in current-\u003ebio_list.  A resync request then starts\nwhich will wait for those requests and block new IO.\n\nBut then the second request to the RAID1/10 will be attempted\nand it cannot progress until the resync request completes,\nwhich cannot progress until the underlying device requests complete,\nwhich are on a queue behind that second request.\n\nSo allow that second request to proceed even though there is\na resync request about to start.\n\nThis is suitable for any -stable kernel.\n\nCc: stable@vger.kernel.org\nReported-by: Ray Morris \u003csupport@bettercgi.com\u003e\nTested-by: Ray Morris \u003csupport@bettercgi.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4474ca42e2577563a919fd3ed782e2ec55bf11a2",
      "tree": "db451c8fad37b281ddbf1d00a779257537cc61ff",
      "parents": [
        "c744a65c1e2d59acc54333ce80a5b0702a98010b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "message": "md/bitmap: ensure to load bitmap when creating via sysfs.\n\nWhen commit 69e51b449d383e (md/bitmap:  separate out loading a bitmap...)\ncreated bitmap_load, it missed calling it after bitmap_create when a\nbitmap is created through the sysfs interface.\nSo if a bitmap is added this way, we don\u0027t allocate memory properly\nand can crash.\n\nThis is suitable for any -stable release since 2.6.35.\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c744a65c1e2d59acc54333ce80a5b0702a98010b",
      "tree": "c76ff42e8f799030636d07c82879cc2bef7798db",
      "parents": [
        "dc10c643e8a8d008fd16dd6706e9e0018eadf8d2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "message": "md: don\u0027t set md arrays to readonly on shutdown.\n\nIt seems that with recent kernel, writeback can still be happening\nwhile shutdown is happening, and consequently data can be written\nafter the md reboot notifier switches all arrays to read-only.\nThis causes a BUG.\n\nSo don\u0027t switch them to read-only - just mark them clean and\nset \u0027safemode\u0027 to \u00272\u0027 which mean that immediately after any\nwrite the array will be switch back to \u0027clean\u0027.\n\nThis could result in the shutdown happening when array is marked\ndirty, thus forcing a resync on reboot.  However if you reboot\nwithout performing a \"sync\" first, you get to keep both halves.\n\nThis is suitable for any stable kernel (though there might be some\nconflicts with obvious fixes in earlier kernels).\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dc10c643e8a8d008fd16dd6706e9e0018eadf8d2",
      "tree": "6a0efe323cfaca9d180c0429c74697598c6d9a05",
      "parents": [
        "41fe75f60bcd4d698daed3e54bb099227358ce58"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "message": "md: allow re-add to failed arrays.\n\nWhen an array is failed (some data inaccessible) then there is no\npoint attempting to add a spare as it could not possibly be recovered.\n\nHowever that may be value in re-adding a recently removed device.\ne.g. if there is a write-intent-bitmap and it is clear, then access\nto the data could be restored by this action.\n\nSo don\u0027t reject a re-add to a failed array for RAID10 and RAID5 (the\nonly arrays  types that check for a failed array).\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "41fe75f60bcd4d698daed3e54bb099227358ce58",
      "tree": "bbd15d0143d20c59f87c5e6d2e0afba57252929b",
      "parents": [
        "43437ecd5adc8bd712b7140c8a70e2b4a80a89dd"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Tue Mar 13 11:21:25 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:25 2012 +1100"
      },
      "message": "md/raid5: use atomic_dec_return() instead of atomic_dec() and atomic_read().\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9d4c7d8799c418816342e263479fa010b182183e",
      "tree": "e1450bda6809a36d5bdb666ae0ab88ef1492b580",
      "parents": [
        "547414d19fd72376ff2ecc42aac8d7a051f03d26"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:21 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:21 2012 +1100"
      },
      "message": "md/raid5: removed unused \u0027added_devices\u0027 variable.\n\ncommit 908f4fbd265733 removed the last user of this variable,\nso we should discard it completely.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "547414d19fd72376ff2ecc42aac8d7a051f03d26",
      "tree": "d46f4726e9bc397a182b9c36665a941e70692281",
      "parents": [
        "1e3fa9bd5061778fb5cf4648e4e8321e8cbbb95b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:20 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:20 2012 +1100"
      },
      "message": "md/raid10: remove unnecessary smp_mb() from end_sync_write\n\nRecent commit 4ca40c2ce099e4f1ce3 (md/raid10: Allow replacement device ...)\nadded an smp_mb in end_sync_write.\nThis was to close a possible race with raid10_remove_disk.\nHowever there is no such race as it is never attempted to remove a\ndisk while resync (or recovery) is happening.\nso the smp_mb is just noise.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1e3fa9bd5061778fb5cf4648e4e8321e8cbbb95b",
      "tree": "de51166f0369e17cc2cb20566b61b7b3c873d7fc",
      "parents": [
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:18 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:18 2012 +1100"
      },
      "message": "md/raid5: make sure reshape_position is cleared on error path.\n\nLeaving a valid reshape_position value in place could be confusing.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5d0edf29151bb5ba372784b7e369f42cf23a94eb",
      "tree": "847eee159ac3387fd6ad1c385341d70fc45ea13b",
      "parents": [
        "4f262acfde22b63498b5e4f165e53d3bb4e96400",
        "0ca93de9b789e0eb05e103f0c04de72df13da73a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 08 17:21:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 08 17:21:51 2012 -0800"
      },
      "message": "Merge tag \u0027dm-3.3-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm\n\nPull device-mapper fixes for 3.3 from Alasdair Kergon\n\nEight small device-mapper bug fixes.\n\n* tag \u0027dm-3.3-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:\n  dm raid: fix flush support\n  dm raid: set MD_CHANGE_DEVS when rebuilding\n  dm thin metadata: decrement counter after removing mapped block\n  dm thin metadata: unlock superblock in init_pmd error path\n  dm thin metadata: remove incorrect close_device on creation error paths\n  dm flakey: fix crash on read when corrupt_bio_byte not set\n  dm io: fix discard support\n  dm ioctl: do not leak argv if target message only contains whitespace\n"
    },
    {
      "commit": "0ca93de9b789e0eb05e103f0c04de72df13da73a",
      "tree": "3a7bd34140d69a9c7bc5eb1874de773511770197",
      "parents": [
        "3aa3b2b2b1edb813dc5342d0108befc39541542d"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 07 19:09:48 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:48 2012 +0000"
      },
      "message": "dm raid: fix flush support\n\nFix dm-raid flush support.\n\nBoth md and dm have support for flush, but the dm-raid target\nforgot to set the flag to indicate that flushes should be\npassed on.  (Important for data integrity e.g. with writeback cache\nenabled.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3aa3b2b2b1edb813dc5342d0108befc39541542d",
      "tree": "151000a59d089231fcefbf44539c89ee56436c84",
      "parents": [
        "af63bcb817cf708f53bcae6edc2e3fb7dd7d8051"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 07 19:09:47 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:47 2012 +0000"
      },
      "message": "dm raid: set MD_CHANGE_DEVS when rebuilding\n\nThe \u0027rebuild\u0027 parameter is used to rebuild individual devices in an\narray (e.g. resynchronize a RAID1 device or recalculate a parity device\nin higher RAID).  The MD_CHANGE_DEVS flag must be set when this\nparameter is given in order to write out the superblocks and make the\nchange take immediate effect.  The code that handles new devices in\nsuper_load already sets MD_CHANGE_DEVS and \u0027FirstUse\u0027.  (The \u0027FirstUse\u0027\nflag was being set as a special case for rebuilds in\nsuper_init_validation.)\n\nAdd a condition for rebuilds in super_load to take care of both flags\nwithout the special case in \u0027super_init_validation\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "af63bcb817cf708f53bcae6edc2e3fb7dd7d8051",
      "tree": "9c38899465b9bc3b8ae613b41a70ab0ff02030d1",
      "parents": [
        "4469a5f387fdde956894137751a41473618a4a52"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 07 19:09:44 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:44 2012 +0000"
      },
      "message": "dm thin metadata: decrement counter after removing mapped block\n\nCorrect the number of mapped sectors shown on a thin device\u0027s\nstatus line by decrementing td-\u003emapped_blocks in __remove() each time\na block is removed.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4469a5f387fdde956894137751a41473618a4a52",
      "tree": "f191a4eeabe0af42d8025b15286257f6a4bf9b1a",
      "parents": [
        "1f3db25d8be4ac50b897b39609802183ea68a514"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 07 19:09:43 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:43 2012 +0000"
      },
      "message": "dm thin metadata: unlock superblock in init_pmd error path\n\nIf dm_sm_disk_create() fails the superblock must be unlocked.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1f3db25d8be4ac50b897b39609802183ea68a514",
      "tree": "b8e140111ba62062d309ae0dec90543f35e28172",
      "parents": [
        "1212268fd9816e3b8801e57b896fceaec71969ad"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Mar 07 19:09:41 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:41 2012 +0000"
      },
      "message": "dm thin metadata: remove incorrect close_device on creation error paths\n\nThe __open_device() error paths in __create_thin() and __create_snap()\nincorrectly call __close_device() even if td was not initialized by\n__open_device().  Remove this.\n\nAlso document __open_device() return values, remove a redundant\ntd-\u003echanged \u003d 1 in __create_thin(), and insert an additional\nsafeguard against creating an already-existing device.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1212268fd9816e3b8801e57b896fceaec71969ad",
      "tree": "d0172aa71a3454faf2feb0c34e28690a6d027758",
      "parents": [
        "0c535e0d6f463365c29623350dbd91642363c39b"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Mar 07 19:09:39 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:39 2012 +0000"
      },
      "message": "dm flakey: fix crash on read when corrupt_bio_byte not set\n\nThe following BUG is hit on the first read that is submitted to a dm\nflakey test device while the device is \"down\" if the corrupt_bio_byte\nfeature wasn\u0027t requested when the device\u0027s table was loaded.\n\nExample DM table that will hit this BUG:\n0 2097152 flakey 8:0 2048 0 30\n\nThis bug was introduced by commit a3998799fb4df0b0af8271a7d50c4269032397aa\n(dm flakey: add corrupt_bio_byte feature) in v3.1-rc1.\n\nBUG: unable to handle kernel paging request at ffff8801cfce3fff\nIP: [\u003cffffffffa008c233\u003e] corrupt_bio_data+0x6e/0xae [dm_flakey]\nPGD 1606063 PUD 0\nOops: 0002 [#1] SMP\n...\nCall Trace:\n \u003cIRQ\u003e\n [\u003cffffffffa008c2b5\u003e] flakey_end_io+0x42/0x48 [dm_flakey]\n [\u003cffffffffa00dca98\u003e] clone_endio+0x54/0xb6 [dm_mod]\n [\u003cffffffff81130587\u003e] bio_endio+0x2d/0x2f\n [\u003cffffffff811c819a\u003e] req_bio_endio+0x96/0x9f\n [\u003cffffffff811c94b9\u003e] blk_update_request+0x1dc/0x3a9\n [\u003cffffffff812f5ee2\u003e] ? rcu_read_unlock+0x21/0x23\n [\u003cffffffff811c96a6\u003e] blk_update_bidi_request+0x20/0x6e\n [\u003cffffffff811c9713\u003e] blk_end_bidi_request+0x1f/0x5d\n [\u003cffffffff811c978d\u003e] blk_end_request+0x10/0x12\n [\u003cffffffff8128f450\u003e] scsi_io_completion+0x1e5/0x4b1\n [\u003cffffffff812882a9\u003e] scsi_finish_command+0xec/0xf5\n [\u003cffffffff8128f830\u003e] scsi_softirq_done+0xff/0x108\n [\u003cffffffff811ce284\u003e] blk_done_softirq+0x84/0x98\n [\u003cffffffff81048d19\u003e] __do_softirq+0xe3/0x1d5\n [\u003cffffffff8138f83f\u003e] ? _raw_spin_lock+0x62/0x69\n [\u003cffffffff810997cf\u003e] ? handle_irq_event+0x4c/0x61\n [\u003cffffffff8139833c\u003e] call_softirq+0x1c/0x30\n [\u003cffffffff81003b37\u003e] do_softirq+0x4b/0xa3\n [\u003cffffffff81048a39\u003e] irq_exit+0x53/0xca\n [\u003cffffffff81398acd\u003e] do_IRQ+0x9d/0xb4\n [\u003cffffffff81390333\u003e] common_interrupt+0x73/0x73\n...\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@vger.kernel.org # 3.1+\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0c535e0d6f463365c29623350dbd91642363c39b",
      "tree": "33217f386886b01e5a033ac8c0cf5fb46f5c3464",
      "parents": [
        "902c6a96a7cb9c50d2a8aed1788efad0a5d8f04c"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed Mar 07 19:09:37 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:37 2012 +0000"
      },
      "message": "dm io: fix discard support\n\nThis patch fixes a crash by recognising discards in dm_io.\n\nCurrently dm_mirror can send REQ_DISCARD bios if running over a\ndiscard-enabled device and without support in dm_io the system\ncrashes badly.\n\nBUG: unable to handle kernel paging request at 00800000\nIP:  __bio_add_page.part.17+0xf5/0x1e0\n...\n bio_add_page+0x56/0x70\n dispatch_io+0x1cf/0x240 [dm_mod]\n ? km_get_page+0x50/0x50 [dm_mod]\n ? vm_next_page+0x20/0x20 [dm_mod]\n ? mirror_flush+0x130/0x130 [dm_mirror]\n dm_io+0xdc/0x2b0 [dm_mod]\n...\n\nIntroduced in 2.6.38-rc1 by commit 5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4\n(dm raid1: support discard).\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: stable@kernel.org\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "902c6a96a7cb9c50d2a8aed1788efad0a5d8f04c",
      "tree": "4f6f797bbaf2d5708d3e01269c1019bd9fb205b5",
      "parents": [
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Wed Mar 07 19:09:34 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:34 2012 +0000"
      },
      "message": "dm ioctl: do not leak argv if target message only contains whitespace\n\nIf \u0027argc\u0027 is zero we jump to the \u0027out:\u0027 label, but this leaks the\n(unused) memory that \u0027dm_split_args()\u0027 allocated for \u0027argv\u0027 if the\nstring being split consisted entirely of whitespace.  Jump to the\n\u0027out_argv:\u0027 label instead to free up that memory.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a2e5f13ce806e79b5a234f9653a2a245424e29fa",
      "tree": "06ec6d22ccfa157195565c1777467a3677d6818b",
      "parents": [
        "3e85fb9cd4f711d70c5d26baa86e438390731eab",
        "7a90484825680e7831856105f5fef654e6c02701"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 05 16:01:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 05 16:01:25 2012 -0800"
      },
      "message": "Merge tag \u0027md-3.3-fixes\u0027 of git://neil.brown.name/md\n\nPull md fixes from Neil Brown:\n \"Three fixes for md in 3.3-rc: Two relate to the recently added drive\n  replacement.  One fixes the problem where a read error in RAID10 would\n  sometimes be retried indefinitely.\"\n\n* tag \u0027md-3.3-fixes\u0027 of git://neil.brown.name/md:\n  md/raid10: fix assembling of arrays with replacement devices.\n  md/raid10: fix handling of error on last working device in array.\n  md/raid1: fix buglet in md_raid1_contested.\n"
    },
    {
      "commit": "7a90484825680e7831856105f5fef654e6c02701",
      "tree": "24eacf1558541076767b59c0cbcc6b6835e35204",
      "parents": [
        "fae8cc5ed0714953b1ad7cf86f030d2177278424"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 05 17:48:12 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 06 10:12:45 2012 +1100"
      },
      "message": "md/raid10: fix assembling of arrays with replacement devices.\n\ncommit 56a2559bb654a (md/raid10: recognise replacements ...)\nchanged \u0027run\u0027 to set -\u003ereplacement or -\u003erdev depending on the\n\u0027Replacement\u0027 status if the device, but it didn\u0027t remove the\nold unconditional setting of \u0027rdev\u0027.  So it was largely ineffective.\n\nSo remove that now.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fae8cc5ed0714953b1ad7cf86f030d2177278424",
      "tree": "f61f54aaff4122671153e63cad86914566bce389",
      "parents": [
        "f53e29fc87b6fb76db0043202ec2c3450caa5ff3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 14 11:10:10 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 14 11:10:10 2012 +1100"
      },
      "message": "md/raid10: fix handling of error on last working device in array.\n\nIf we get a read error on the last working device in a RAID10 which\ncontains the target block, then we don\u0027t fail the device (which is\ngood) but we don\u0027t abort retries, which is wrong.\nWe end up in an infinite loop retrying the read on the one device.\n\nThis patch fixes the problem in two places:\n1/ in raid10_end_read_request we don\u0027t even ask for a retry if this\n   was the last usable device.  This is efficient but a little racy\n   and will sometimes retry when it should not.\n\n2/ in handle_read_error we are careful to exclude any device from\n   retry which we tried to mark as faulty (that might have failed if\n   it was the last device).  This is race-free but less efficient.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f53e29fc87b6fb76db0043202ec2c3450caa5ff3",
      "tree": "b1f8705e420775a40ebb2f26132fe27184b82fbb",
      "parents": [
        "db91ff55bdf06736b849afc1b1fce5763bbb8d5d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Feb 13 14:24:05 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Feb 13 14:24:05 2012 +1100"
      },
      "message": "md/raid1: fix buglet in md_raid1_contested.\n\nSince we added \u0027replacement\u0027 capability, RAID1 can have twice\nas many devices as -\u003eraid_disks indicates.\nSo md_raid1_congested needs to check that many possible devices,\nnot just -\u003eraid_disks many.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4d39aa1b998fffd481517c1dd03d83c38e1706f9",
      "tree": "76c4e4cf52b148ae035f71c7c30692b6634cd343",
      "parents": [
        "4a68d54c983514f123e99fc720951a4ee4d84270",
        "db91ff55bdf06736b849afc1b1fce5763bbb8d5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 08 19:06:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 08 19:06:30 2012 -0800"
      },
      "message": "Merge tag \u0027md-3.3-fixes\u0027 of git://neil.brown.name/md\n\nSome simple md-related fixes.\n\n1/ two small fixes to ensure we handle an interrupted resync properly.\n2/ avoid loading the bitmap multiple times in dm-raid\n\n* tag \u0027md-3.3-fixes\u0027 of git://neil.brown.name/md:\n  md: two small fixes to handling interrupt resync.\n  Prevent DM RAID from loading bitmap twice.\n"
    },
    {
      "commit": "db91ff55bdf06736b849afc1b1fce5763bbb8d5d",
      "tree": "ade2010773b721e3d699e75a9348f200e7ad31c4",
      "parents": [
        "34f8ac6d79e5446c6242e4bcb474f152c857c5c6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 07 12:01:51 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 07 12:01:51 2012 +1100"
      },
      "message": "md: two small fixes to handling interrupt resync.\n\n1/ If a resync is aborted we should record how far we got\n (recovery_cp) the last request that we know has completed\n (-\u003ecurr_resync_completed) rather than the last request that was\n submitted (-\u003ecurr_resync).\n\n2/ When a resync aborts we still want to update the metadata with\n any changes, so set MD_CHANGE_DEVS even if we \u0027skip\u0027.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    }
  ],
  "next": "972c5ae961d6e5103e2b33d935cfa4145fd47140"
}
