)]}'
{
  "log": [
    {
      "commit": "961902c0f8240175729274cd14198872f42072b7",
      "tree": "808b47d32174e970465dc00cea9150ff978bfc95",
      "parents": [
        "60fc13702a1b35118c1548e9c257fa038cecb658"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:57:48 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:57:48 2011 +1100"
      },
      "message": "md/bitmap: It is OK to clear bits during recovery.\n\ncommit d0a4bb492772ce5c4bdfba3744a99ed6f6fb238f introduced a\nregression which is annoying but fairly harmless.\n\nWhen writing to an array that is undergoing recovery (a spare\nin being integrated into the array), writing to the array will\nset bits in the bitmap, but they will not be cleared when the\nwrite completes.\n\nFor bits covering areas that have not been recovered yet this is not a\nproblem as the recovery will clear the bits.  However bits set in\nalready-recovered region will stay set and never be cleared.\nThis doesn\u0027t risk data integrity.  The only negatives are:\n - next time there is a crash, more resyncing than necessary will\n   be done.\n - the bitmap doesn\u0027t look clean, which is confusing.\n\nWhile an array is recovering we don\u0027t want to update the\n\u0027events_cleared\u0027 setting in the bitmap but we do still want to clear\nbits that have very recently been set - providing they were written to\nthe recovering device.\n\nSo split those two needs - which previously both depended on \u0027success\u0027\nand always clear the bit of the write went to all devices.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "60fc13702a1b35118c1548e9c257fa038cecb658",
      "tree": "163094eb4ae229f9263bfd05b788f29cc14e94f5",
      "parents": [
        "30d7a4836847bdb10b32c78a4879d4aebe0f193b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:57:19 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:57:19 2011 +1100"
      },
      "message": "md: don\u0027t give up looking for spares on first failure-to-add\n\nBefore performing a recovery we try to remove any spares that\nmight not be working, then add any that might have become relevant.\n\nCurrently we abort on the first spare that cannot be added.\nThis is a false optimisation.\nIt is conceivable that - depending on rules in the personality - a\nsubsequent spare might be accepted.\nAlso the loop does other things like count the available spares and\nreset the \u0027recovery_offset\u0027 value.\n\nIf we abort early these might not happen properly.\n\nSo remove the early abort.\n\nIn particular if you have an array what is undergoing recovery and\nwhich has extra spares, then the recovery may not restart after as\nreboot as the could of \u0027spares\u0027 might end up as zero.\n\nReported-by: Anssi Hannula \u003canssi.hannula@iki.fi\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "30d7a4836847bdb10b32c78a4879d4aebe0f193b",
      "tree": "039d4eaec57d67cbfc49d92f12e592b46c251c01",
      "parents": [
        "09cd9270ea52e0f9851528e8ed028073f96b3c34"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:57:00 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:57:00 2011 +1100"
      },
      "message": "md/raid5: ensure correct assessment of drives during degraded reshape.\n\nWhile reshaping a degraded array (as when reshaping a RAID0 by first\nconverting it to a degraded RAID4) we currently get confused about\nwhich devices are in_sync.  In most cases we get it right, but in the\nregion that is being reshaped we need to treat non-failed devices as\nin-sync when we have the data but haven\u0027t actually written it out yet.\n\nReported-by: Adam Kwolek \u003cadam.kwolek@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "09cd9270ea52e0f9851528e8ed028073f96b3c34",
      "tree": "8cfb20f05531dc1e83c7d295e6b59dd692bdf99d",
      "parents": [
        "5d8c71f9e5fbdd95650be00294d238e27a363b5c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:56:55 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 23 09:56:55 2011 +1100"
      },
      "message": "md/linear: fix hot-add of devices to linear arrays.\n\ncommit d70ed2e4fafdbef0800e73942482bb075c21578b\nbroke hot-add to a linear array.\nAfter that commit, metadata if not written to devices until they\nhave been fully integrated into the array as determined by\nsaved_raid_disk.  That patch arranged to clear that field after\na recovery completed.\n\nHowever for linear arrays, there is no recovery - the integration is\ninstantaneous.  So we need to explicitly clear the saved_raid_disk\nfield.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5d8c71f9e5fbdd95650be00294d238e27a363b5c",
      "tree": "51f7ae70b3a188f8376d7912493d346537fe516e",
      "parents": [
        "9283d8c5af4cdcb809e655acdf4be368afec8b58"
      ],
      "author": {
        "name": "Adam Kwolek",
        "email": "adam.kwolek@intel.com",
        "time": "Fri Dec 09 14:26:11 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Dec 09 14:26:11 2011 +1100"
      },
      "message": "md: raid5 crash during degradation\n\nNULL pointer access causes crash in raid5 module.\n\nSigned-off-by: Adam Kwolek \u003cadam.kwolek@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9283d8c5af4cdcb809e655acdf4be368afec8b58",
      "tree": "d4baa86260792a10782808e51d5468e145358980",
      "parents": [
        "8bd2f0a05b361e07d48bb34398593f5f523946b3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 16:27:57 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 16:27:57 2011 +1100"
      },
      "message": "md/raid5: never wait for bad-block acks on failed device.\n\nOnce a device is failed we really want to completely ignore it.\nIt should go away soon anyway.\n\nIn particular the presence of bad blocks on it should not cause us to\nblock as we won\u0027t be trying to write there anyway.\n\nSo as soon as we can check if a device is Faulty, do so and pretend\nthat it is already gone if it is Faulty.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8bd2f0a05b361e07d48bb34398593f5f523946b3",
      "tree": "a87860b4b8821b40eb9e6bb5333f71dfa8c3fb39",
      "parents": [
        "52c64152a935e63d9ff73ce823730c9a23dedbff"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 16:26:08 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 16:26:08 2011 +1100"
      },
      "message": "md: ensure new badblocks are handled promptly.\n\nWhen we mark blocks as bad we need them to be acknowledged by the\nmetadata handler promptly.\n\nFor an in-kernel metadata handler that was already being done.  But\nfor an external metadata handler we need to alert it of the change by\nsending a notification through the sysfs file.  This adds that\nnotification.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "52c64152a935e63d9ff73ce823730c9a23dedbff",
      "tree": "03de10a1899d74b42d00740437140a032686d011",
      "parents": [
        "af8a24347f966ab9fae6b0f127d1fbc9d6932d3a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 16:22:48 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 16:22:48 2011 +1100"
      },
      "message": "md: bad blocks shouldn\u0027t cause a Blocked status on a Faulty device.\n\nOnce a device is marked Faulty the badblocks - whether acknowledged or\nnot - become irrelevant.  So they shouldn\u0027t cause the device to be\nmarked as Blocked.\n\nWithout this patch, a process might write \"-blocked\" to clear the\nBlocked status, but while that will correctly fail the device, it\nwon\u0027t remove the apparent \u0027blocked\u0027 status.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "af8a24347f966ab9fae6b0f127d1fbc9d6932d3a",
      "tree": "903afdae95dc11444707410d784ad857dfb887c9",
      "parents": [
        "1d23f178d56ae1349b4fc5108ac8f4f8cdc92afc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 15:49:46 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 15:49:46 2011 +1100"
      },
      "message": "md: take a reference to mddev during sysfs access.\n\n\nWhen we are accessing an mddev via sysfs we know that the\nmddev cannot disappear because it has an embedded kobj which\nis refcounted by sysfs.\nAnd we also take the mddev_lock.\nHowever this is not enough.\n\nThe final mddev_put could have been called and the\nmddev_delayed_delete is waiting for sysfs to let go so it can destroy\nthe kobj and mddev.\nIn this state there are a lot of changes that should not be attempted.\n\nTo to guard against this we:\n - initialise mddev-\u003eall_mddevs in on last put so the state can be\n   easily detected.\n - in md_attr_show and md_attr_store, check -\u003eall_mddevs under\n   all_mddevs_lock and mddev_get the mddev if it still appears to\n   be active.\n\nThis means that if we get to sysfs as the mddev is being deleted we\nwill get -EBUSY.\n\nrdev_attr_store and rdev_attr_show are similar but already have\nsufficient protection.  They check that rdev-\u003emddev still points to\nmddev after taking mddev_lock.  As this is cleared  before delayed\nremoval which can only be requested under the mddev_lock, this\nensure the rdev and mddev are still alive.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1d23f178d56ae1349b4fc5108ac8f4f8cdc92afc",
      "tree": "3be282873c611cab1e855e0991ee3620d4cb906b",
      "parents": [
        "7c8f4247986bb5c5fb1d5b1fad35461989fe8310"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 15:49:12 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 08 15:49:12 2011 +1100"
      },
      "message": "md: refine interpretation of \"hold_active \u003d\u003d UNTIL_IOCTL\".\n\nWe like md devices to disappear when they really are not needed.\nHowever it is not possible to tell from the current state whether it\nis needed or not.  We can only tell from recent history of changes.\n\nIn particular immediately after we create an md device it looks very\nsimilar to immediately after we have finished with it.\n\nSo we always preserve a newly created md device until something\nsignificant happens.  This state is stored in \u0027hold_active\u0027.\n\nThe normal case is to keep it until an ioctl happens, as that will\nnormally either activate it, or explicitly de-activate it.  If it\ndoesn\u0027t then it was probably created by mistake and it is now time to\nget rid of it.\n\nWe can also modify an array via sysfs (instead of via ioctl) and we\ncurrently treat any change via sysfs like an ioctl as a sign that if\nit now isn\u0027t more active, it should be destroyed.\nHowever this is not appropriate as changes made via sysfs are more\ngradual so we should look for a more definitive change.\n\nSo this patch only clears \u0027hold_active\u0027 from UNTIL_IOCTL to clear when\nthe array_state is changed via sysfs.  Other changes via sysfs\nare ignored.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7c8f4247986bb5c5fb1d5b1fad35461989fe8310",
      "tree": "2c76f387184ac0cc587e66519536fc83e0f79553",
      "parents": [
        "257a4b42af7586fab4eaec7f04e6896b86551843"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Nov 23 10:18:52 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Nov 23 10:18:52 2011 +1100"
      },
      "message": "md/lock: ensure updates to page_attrs are properly locked.\n\nPage attributes are set using __set_bit rather than set_bit as\nit normally called under a spinlock so the extra atomicity is not\nneeded.\n\nHowever there are two places where we might set or clear page\nattributes without holding the spinlock.\nSo add the spinlock in those cases.\n\nThis might be the cause of occasional reports that bits a aren\u0027t\ngetting clear properly - theory is that BITMAP_PAGE_PENDING gets lost\nwhen BITMAP_PAGE_NEEDWRITE is set or cleared.  This is an\ninconvenience, not a threat to data safety.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "257a4b42af7586fab4eaec7f04e6896b86551843",
      "tree": "ec65357b2320ba4e4341a2853245048889666f5c",
      "parents": [
        "9a3f530f39f4490eaa18b02719fb74ce5f4d2d86"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Nov 08 16:22:06 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 16:22:06 2011 +1100"
      },
      "message": "md/raid5: STRIPE_ACTIVE has lock semantics, add barriers\n\nAll updates that occur under STRIPE_ACTIVE should be globally visible\nwhen STRIPE_ACTIVE clears.  test_and_set_bit() implies a barrier, but\nclear_bit() does not.\n\nThis is suitable for 3.1-stable.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "9a3f530f39f4490eaa18b02719fb74ce5f4d2d86",
      "tree": "4bcff31bacd9b242360f48dad706d8b5231ffafe",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 16:22:01 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Nov 08 16:22:01 2011 +1100"
      },
      "message": "md/raid5: abort any pending parity operations when array fails.\n\nWhen the number of failed devices exceeds the allowed number\nwe must abort any active parity operations (checks or updates) as they\nare no longer meaningful, and can lead to a BUG_ON in\nhandle_parity_checks6.\n\nThis bug was introduce by commit 6c0069c0ae9659e3a91b68eaed06a5c6c37f45c8\nin 2.6.29.\n\nReported-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nTested-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a84450604d0fe08b6a2335efbedede18d3d7cc75",
      "tree": "013be8cd17b787a3051d1d614f794f30573467f8",
      "parents": [
        "6f66263f8ebe1fb1f138de41ca9aa0a4860b30d0"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Nov 01 20:27:43 2011 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:29:10 2011 -0800"
      },
      "message": "device-mapper: using EXPORT_SYBOL in dm-space-map-checker.c needs export.h\n\nReported-by: Witold Baryluk \u003cbaryluk@smp.if.uj.edu.pl\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f66263f8ebe1fb1f138de41ca9aa0a4860b30d0",
      "tree": "bf8057b31cafcd43e6c4a60551bf24ece185ff07",
      "parents": [
        "1944ce60fe1e92506d3347f4d8e10a82b17096e4"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Nov 01 18:30:49 2011 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:29:10 2011 -0800"
      },
      "message": "device-mapper: dm-bufio.c needs to include module.h\n\nsince it uses the module facilities.\n\nReported-by: Witold Baryluk \u003cbaryluk@smp.if.uj.edu.pl\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1944ce60fe1e92506d3347f4d8e10a82b17096e4",
      "tree": "1da72242c0a525e6a46c3ddc9693d88816362a03",
      "parents": [
        "0c073e35550879fd133bc3fe509df5b88da51278"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Sep 28 18:29:32 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:29:09 2011 -0800"
      },
      "message": "drivers/md: change module.h -\u003e export.h in persistent-data/dm-*\n\nFor the files which are not themselves modular, we can change\nthem to include only the smaller export.h since all they are\ndoing is looking for EXPORT_SYMBOL.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "b4fdcb02f1e39c27058a885905bd0277370ba441",
      "tree": "fd4cfd1994f21f44afe5e7904681fb5ac09f81b8",
      "parents": [
        "044595d4e448305fbaec472eb7d22636d24e7d8c",
        "6dd9ad7df2019b1e33a372a501907db293ebcd0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block: (29 commits)\n  block: don\u0027t call blk_drain_queue() if elevator is not up\n  blk-throttle: use queue_is_locked() instead of lockdep_is_held()\n  blk-throttle: Take blkcg-\u003elock while traversing blkcg-\u003epolicy_list\n  blk-throttle: Free up policy node associated with deleted rule\n  block: warn if tag is greater than real_max_depth.\n  block: make gendisk hold a reference to its queue\n  blk-flush: move the queue kick into\n  blk-flush: fix invalid BUG_ON in blk_insert_flush\n  block: Remove the control of complete cpu from bio.\n  block: fix a typo in the blk-cgroup.h file\n  block: initialize the bounce pool if high memory may be added later\n  block: fix request_queue lifetime handling by making blk_queue_cleanup() properly shutdown\n  block: drop @tsk from attempt_plug_merge() and explain sync rules\n  block: make get_request[_wait]() fail if queue is dead\n  block: reorganize throtl_get_tg() and blk_throtl_bio()\n  block: reorganize queue draining\n  block: drop unnecessary blk_get/put_queue() in scsi_cmd_ioctl() and blk_get_tg()\n  block: pass around REQ_* flags instead of broken down booleans during request alloc/free\n  block: move blk_throtl prototypes to block/blk.h\n  block: fix genhd refcounting in blkio_policy_parse_and_set()\n  ...\n\nFix up trivial conflicts due to \"mddev_t\" -\u003e \"struct mddev\" conversion\nand making the request functions be of type \"void\" instead of \"int\" in\n - drivers/md/{faulty.c,linear.c,md.c,md.h,multipath.c,raid0.c,raid1.c,raid10.c,raid5.c}\n - drivers/staging/zram/zram_drv.c\n"
    },
    {
      "commit": "43672a0784707d795556b1f93925da8b8e797d03",
      "tree": "5c92aabd211281300f89fc2e69e9ee7e58bcc449",
      "parents": [
        "2380078cdb7e6d520e33dcf834e0be979d542e48",
        "2e727c3ca1beff05f27b6207a795790f222bf8d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 17:02:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 17:02:37 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm:\n  dm: raid fix device status indicator when array initializing\n  dm log userspace: add log device dependency\n  dm log userspace: fix comment hyphens\n  dm: add thin provisioning target\n  dm: add persistent data library\n  dm: add bufio\n  dm: export dm get md\n  dm table: add immutable feature\n  dm table: add always writeable feature\n  dm table: add singleton feature\n  dm kcopyd: add dm_kcopyd_zero to zero an area\n  dm: remove superfluous smp_mb\n  dm: use local printk ratelimit\n  dm table: propagate non rotational flag\n"
    },
    {
      "commit": "daaa5f7cbee37dfc8464d350f1eacd6e94b278cc",
      "tree": "dec72cbeee1d5fbb169c21305510918818a0d45d",
      "parents": [
        "056075c76417b112b4924e7b6386fdc6dfc9ac03"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri May 27 15:50:58 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:19 2011 -0400"
      },
      "message": "md: Add in export.h for files using EXPORT_SYMBOL\n\nThese files were getting the defines for EXPORT_SYMBOL because\ndevice.h was including module.h.  But we are going to put an\nend to that.  So add the proper export.h include now.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "056075c76417b112b4924e7b6386fdc6dfc9ac03",
      "tree": "7326cbdb0f54f975b140e548bd4f4d6f4b3486cc",
      "parents": [
        "ec37d321b96621906337c4279c490e1b5893ecae"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 03 13:58:33 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:18 2011 -0400"
      },
      "message": "md: Add module.h to all files using it implicitly\n\nA pending cleanup will mean that module.h won\u0027t be implicitly\neverywhere anymore.  Make sure the modular drivers in md dir\nare actually calling out for \u003cmodule.h\u003e explicitly in advance.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "571109f5369efbd3f7d09b4e331c1aa4de3e411a",
      "tree": "747abcc3cae63c3e8fa279bf9b2e4b1929342769",
      "parents": [
        "839d8810747bbf39e0a5a7f223b67bffa7945f8d",
        "7fcc7c8acf0fba44d19a713207af7e58267c1179"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:21:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:21:29 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md/raid10:  Fix bug when activating a hot-spare.\n"
    },
    {
      "commit": "2e727c3ca1beff05f27b6207a795790f222bf8d8",
      "tree": "d00c9aeea0173051fe3bbd4398697acab9ab61ca",
      "parents": [
        "5a25f0eb707bbb4a5aaaf19c933605a6dbaf77a5"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Oct 31 20:21:26 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:26 2011 +0000"
      },
      "message": "dm: raid fix device status indicator when array initializing\n\nWhen devices in a RAID array are not in-sync, they are supposed to be\nreported as such in the status output as an \u0027a\u0027 character, which means\n\"alive, but not in-sync\".  But when the entire array is rebuilt \u0027A\u0027 is\nbeing used, which is incorrect.  This patch corrects this to \u0027a\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5a25f0eb707bbb4a5aaaf19c933605a6dbaf77a5",
      "tree": "62f9af5013d252b0fdff5449b3adcaeadfff31aa",
      "parents": [
        "b89544575d0096735edc9b0ad187e635487905ad"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Oct 31 20:21:24 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:24 2011 +0000"
      },
      "message": "dm log userspace: add log device dependency\n\nAllow userspace dm log implementations to register their log device so it\nis no longer missing from the list of device dependencies.\n\nWhen device mapper targets use a device they normally call dm_get_device\nwhich includes it in the device list returned to userspace applications\nsuch as LVM through the DM_TABLE_DEPS ioctl.  Userspace log devices\ndon\u0027t use dm_get_device as userspace opens them so they are missing from\nthe list of dependencies.\n\nThis patch extends the DM_ULOG_CTR operation to allow userspace to\nrespond with the name of the log device (if appropriate) to be\nregistered via \u0027dm_get_device\u0027.  DM_ULOG_REQUEST_VERSION is incremented.\n\nThis is backwards compatible.  If the kernel and userspace log server\nhave both been updated, the new information will be passed down to the\nkernel and the device will be registered.  If the kernel is new, but\nthe log server is old, the log server will not pass down any device\ninformation and the kernel will simply bypass the device registration\nas before.  If the kernel is old but the log server is new, the log\nserver will see the old version number and not pass the device info.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b89544575d0096735edc9b0ad187e635487905ad",
      "tree": "8f5aa4a2d4e5e9d1b89935dbaa8d9192a87e6550",
      "parents": [
        "991d9fa02da0dd1f843dc011376965e0c8c6c9b5"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Oct 31 20:21:22 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:22 2011 +0000"
      },
      "message": "dm log userspace: fix comment hyphens\n\nFix comments: clustered-disk needs a hyphen not an underscore.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "991d9fa02da0dd1f843dc011376965e0c8c6c9b5",
      "tree": "a64c94710246b77bb74cd77634581cea3d32cfe1",
      "parents": [
        "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "thornber@redhat.com",
        "time": "Mon Oct 31 20:21:18 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:18 2011 +0000"
      },
      "message": "dm: add thin provisioning target\n\nInitial EXPERIMENTAL implementation of device-mapper thin provisioning\nwith snapshot support.  The \u0027thin\u0027 target is used to create instances of\nthe virtual devices that are hosted in the \u0027thin-pool\u0027 target.  The\nthin-pool target provides data sharing among devices.  This sharing is\nmade possible using the persistent-data library in the previous patch.\n\nThe main highlight of this implementation, compared to the previous\nimplementation of snapshots, is that it allows many virtual devices to\nbe stored on the same data volume, simplifying administration and\nallowing sharing of data between volumes (thus reducing disk usage).\n\nAnother big feature is support for arbitrary depth of recursive\nsnapshots (snapshots of snapshots of snapshots ...).  The previous\nimplementation of snapshots did this by chaining together lookup tables,\nand so performance was O(depth).  This new implementation uses a single\ndata structure so we don\u0027t get this degradation with depth.\n\nFor further information and examples of how to use this, please read\nDocumentation/device-mapper/thin-provisioning.txt\n\nSigned-off-by: Joe Thornber \u003cthornber@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
      "tree": "499461f724d4db3d7118641f4a20f5be23549edd",
      "parents": [
        "95d402f057f2e208e4631893f6cd4a59c7c05e41"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "thornber@redhat.com",
        "time": "Mon Oct 31 20:19:11 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:11 2011 +0000"
      },
      "message": "dm: add persistent data library\n\nThe persistent-data library offers a re-usable framework for the storage\nand management of on-disk metadata in device-mapper targets.\n\nIt\u0027s used by the thin-provisioning target in the next patch and in an\nupcoming hierarchical storage target.\n\nFor further information, please read\nDocumentation/device-mapper/persistent-data.txt\n\nSigned-off-by: Joe Thornber \u003cthornber@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "95d402f057f2e208e4631893f6cd4a59c7c05e41",
      "tree": "4edb6c01f62689617ee3098104c135ef2c43f0e2",
      "parents": [
        "3cf2e4ba74ca1bf5d8ad26cd18592f02b32964f5"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Oct 31 20:19:09 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:09 2011 +0000"
      },
      "message": "dm: add bufio\n\nThe dm-bufio interface allows you to do cached I/O on devices,\nholding recently-read blocks in memory and performing delayed writes.\n\nWe don\u0027t use buffer cache or page cache already present in the kernel, because:\n* we need to handle block sizes larger than a page\n* we can\u0027t allocate memory to perform reads or we\u0027d have deadlocks\n\nCurrently, when a cache is required, we limit its size to a fraction of\navailable memory.  Usage can be viewed and changed in\n/sys/module/dm_bufio/parameters/ .\n\nThe first user is thin provisioning, but more dm users are planned.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3cf2e4ba74ca1bf5d8ad26cd18592f02b32964f5",
      "tree": "5520a8bcdbabc01956ce774724388e013b6f55f4",
      "parents": [
        "36a0456fbf2d9680bf9af81b39daf4a8e22cb1b8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:06 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:06 2011 +0000"
      },
      "message": "dm: export dm get md\n\nExport dm_get_md() for the new thin provisioning target to use.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "36a0456fbf2d9680bf9af81b39daf4a8e22cb1b8",
      "tree": "a19af18640d538e8357c195e6b4c77d0f6c92391",
      "parents": [
        "cc6cbe141a20f6d876b161b60af38d93935bfa85"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:04 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:04 2011 +0000"
      },
      "message": "dm table: add immutable feature\n\nIntroduce DM_TARGET_IMMUTABLE to indicate that the target type cannot be mixed\nwith any other target type, and once loaded into a device, it cannot be\nreplaced with a table containing a different type.\n\nThe thin provisioning pool device will use this.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "cc6cbe141a20f6d876b161b60af38d93935bfa85",
      "tree": "82fbbc48815503683b434c74b7eb18c15960f4f9",
      "parents": [
        "3791e2fc0e4b40d4188e79b0a99bfa6bce714a10"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:02 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:02 2011 +0000"
      },
      "message": "dm table: add always writeable feature\n\nAdd a target feature flag DM_TARGET_ALWAYS_WRITEABLE to indicate that a target\ndoes not support read-only mode.\n\nThe initial implementation of the thin provisioning target uses this.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3791e2fc0e4b40d4188e79b0a99bfa6bce714a10",
      "tree": "2dc67f0593e1cb1f3dc07ff9883a03fe9edb4b2a",
      "parents": [
        "7f06965390e4a10fb6906c886324bfd0a96961be"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:00 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:19:00 2011 +0000"
      },
      "message": "dm table: add singleton feature\n\nIntroduce the concept of a singleton table which contains exactly one target.\n\nIf a target type sets the DM_TARGET_SINGLETON feature bit device-mapper\nwill ensure that any table that includes that target contains no others.\n\nThe thin provisioning pool target uses this.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7f06965390e4a10fb6906c886324bfd0a96961be",
      "tree": "5a6fd96cd56fb9d80bf1a40110ebfcdb5a8a7aa3",
      "parents": [
        "fbdc86f3bd597e108fa03d998132d04fcfe1d669"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Oct 31 20:18:58 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:18:58 2011 +0000"
      },
      "message": "dm kcopyd: add dm_kcopyd_zero to zero an area\n\nThis patch introduces dm_kcopyd_zero() to make it easy to use\nkcopyd to write zeros into the requested areas instead\ninstead of copying.  It is implemented by passing a NULL\ncopying source to dm_kcopyd_copy().\n\nThe forthcoming thin provisioning target uses this.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fbdc86f3bd597e108fa03d998132d04fcfe1d669",
      "tree": "3d0ad8ea43576c0b57523a71d345a209f6ffd6fa",
      "parents": [
        "71a16736a15e3fd11d283c42aa86bf704f6d25ff"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Oct 31 20:18:56 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:18:56 2011 +0000"
      },
      "message": "dm: remove superfluous smp_mb\n\nSince set_current_state() contains a memory barrier in it,\nan additional barrier isn\u0027t needed.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "71a16736a15e3fd11d283c42aa86bf704f6d25ff",
      "tree": "1c6c54e8229b422756ec775cc04ad0066d1ad0c8",
      "parents": [
        "4693c9668fdcec229825b3763876b4744f9e6d5e"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Oct 31 20:18:54 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:18:54 2011 +0000"
      },
      "message": "dm: use local printk ratelimit\n\nprintk_ratelimit() shares global ratelimiting state with all\nother subsystems, so its usage is discouraged. Instead,\ndefine and use dm\u0027s local state.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4693c9668fdcec229825b3763876b4744f9e6d5e",
      "tree": "683d07005d06c3e25bbec25b910567275f0bb9d1",
      "parents": [
        "c3b92c8787367a8bb53d57d9789b558f1295cc96"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Mon Oct 31 20:18:50 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:18:50 2011 +0000"
      },
      "message": "dm table: propagate non rotational flag\n\nAllow QUEUE_FLAG_NONROT to propagate up the device stack if all\nunderlying devices are non-rotational.  Tools like ureadahead will\nschedule IOs differently based on the rotational flag.\n\nWith this patch, I see boot time go from 7.75 s to 7.46 s on my device.\n\nSuggested-by: J. Richard Barnette \u003cjrbarnette@chromium.org\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7fcc7c8acf0fba44d19a713207af7e58267c1179",
      "tree": "ce4b03fa3dfc07fb19b4d6c3653ba41ec1f926db",
      "parents": [
        "d890fa2b0586b6177b119643ff66932127d58afa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 31 12:59:44 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 31 12:59:44 2011 +1100"
      },
      "message": "md/raid10:  Fix bug when activating a hot-spare.\n\nThis is a fairly serious bug in RAID10.\n\nWhen a RAID10 array is degraded and a hot-spare is activated, the\nspare does not take up the empty slot, but rather replaces the first\nworking device.\nThis is likely to make the array non-functional.   It would normally\nbe possible to recover the data, but that would need care and is not\nguaranteed.\n\nThis bug was introduced in commit\n   2bb77736ae5dca0a189829fbb7379d43364a9dac\nwhich first appeared in 3.1.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c3ae1f33569e06984f0426a7834ff63251d44d84",
      "tree": "0d7f6f6b49c331e440850cf2e8a7bc0cf220f8bc",
      "parents": [
        "c28cfd60e4ec3f494b73ef7d6c661f5f491cd84f",
        "d890fa2b0586b6177b119643ff66932127d58afa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 21:39:42 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 21:39:42 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (34 commits)\n  md: Fix some bugs in recovery_disabled handling.\n  md/raid5: fix bug that could result in reads from a failed device.\n  lib/raid6: Fix filename emitted in generated code\n  md.c: trivial comment fix\n  MD: Allow restarting an interrupted incremental recovery.\n  md: clear In_sync bit on devices added to an active array.\n  md: add proper write-congestion reporting to RAID1 and RAID10.\n  md: rename \"mdk_personality\" to \"md_personality\"\n  md/bitmap remove fault injection options.\n  md/raid5: typedef removal: raid5_conf_t -\u003e struct r5conf\n  md/raid1: typedef removal: conf_t -\u003e struct r1conf\n  md/raid10: typedef removal: conf_t -\u003e struct r10conf\n  md/raid0: typedef removal: raid0_conf_t -\u003e struct r0conf\n  md/multipath: typedef removal: multipath_conf_t -\u003e struct mpconf\n  md/linear: typedef removal: linear_conf_t -\u003e struct linear_conf\n  md/faulty: remove typedef: conf_t -\u003e struct faulty_conf\n  md/linear: remove typedefs: dev_info_t -\u003e struct dev_info\n  md: remove typedefs: mirror_info_t -\u003e struct mirror_info\n  md: remove typedefs: r10bio_t -\u003e struct r10bio and r1bio_t -\u003e struct r1bio\n  md: remove typedefs: mdk_thread_t -\u003e struct md_thread\n  ...\n"
    },
    {
      "commit": "d890fa2b0586b6177b119643ff66932127d58afa",
      "tree": "48dfb1c192274002fc045996f49915a4d9af3bf8",
      "parents": [
        "355840e7a7e56bb2834fd3b0da64da5465f8aeaa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 26 11:54:39 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 26 11:54:39 2011 +1100"
      },
      "message": "md: Fix some bugs in recovery_disabled handling.\n\nIn 3.0 we changed the way recovery_disabled was handle so that instead\nof testing against zero, we test an mddev-\u003e value against a conf-\u003e\nvalue.\nTwo problems:\n  1/ one place in raid1 was missed and still sets to \u00271\u0027.\n  2/ We didn\u0027t explicitly set the conf-\u003e value at array creation\n     time.\n     It defaulted to \u00270\u0027 just like the mddev value does so they\n     could appear equal and thus disable recovery.\n     This did not affect normal \u0027md\u0027 as it calls bind_rdev_to_array\n     which changes the mddev value.  However the dmraid interface\n     doesn\u0027t call this and so doesn\u0027t change -\u003erecovery_disabled; so at\n     array start all recovery is incorrectly disabled.\n\nSo initialise the \u0027conf\u0027 value to one less that the mddev value, so\nthe will only be the same when explicitly set that way.\n\nReported-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown  \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "355840e7a7e56bb2834fd3b0da64da5465f8aeaa",
      "tree": "8ba816b2db3b96872f744c476c3d3d0d3f12fd23",
      "parents": [
        "bd860c53d4f9cad520d233e1ba690aaacfb39e9b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 26 10:31:04 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 26 10:31:04 2011 +1100"
      },
      "message": "md/raid5: fix bug that could result in reads from a failed device.\n\nThis bug was introduced in 415e72d034c50520ddb7ff79e7d1792c1306f0c9\nwhich was in 2.6.36.\n\nThere is a small window of time between when a device fails and when\nit is removed from the array.  During this time we might still read\nfrom it, but we won\u0027t write to it - so it is possible that we could\nread stale data.\n\nWe didn\u0027t need the test of \u0027Faulty\u0027 before because the test on\nIn_sync is sufficient.  Since we started allowing reads from the early\npart of non-In_sync devices we need a test on Faulty too.\n\nThis is suitable for any kernel from 2.6.36 onwards, though the patch\nmight need a bit of tweaking in 3.0 and earlier.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9562ad9ab36df7ccef920d119f3b5100025db95f",
      "tree": "b5e32ca469cbefca4122c1a08db80cdb12e655fb",
      "parents": [
        "e890413af4c2dfebf5432ef30cc70cb11dad3213"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 24 16:11:30 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Oct 24 16:11:30 2011 +0200"
      },
      "message": "block: Remove the control of complete cpu from bio.\n\nbio originally has the functionality to set the complete cpu, but\nit is broken.\n\nChirstoph said that \"This code is unused, and from the all the\ndiscussions lately pretty obviously broken.  The only thing keeping\nit serves is creating more confusion and possibly more bugs.\"\n\nAnd Jens replied with \"We can kill bio_set_completion_cpu(). I\u0027m fine\nwith leaving cpu control to the request based drivers, they are the\nonly ones that can toggle the setting anyway\".\n\nSo this patch tries to remove all the work of controling complete cpu\nfrom a bio.\n\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d136f2efdf3a4faba47f58603f8ace2207234d75",
      "tree": "0b2e94980503cdae7f326219d792d98b10e54a0f",
      "parents": [
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Oct 23 20:55:17 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Oct 23 20:55:17 2011 +0100"
      },
      "message": "dm kcopyd: fix job_pool leak\n\nFix memory leak introduced by commit a6e50b409d3f9e0833e69c3c9cca822e8fa4adbb\n(dm snapshot: skip reading origin when overwriting complete chunk).\n\nWhen allocating a set of jobs from kc-\u003ejob_pool, job-\u003emaster_job must be\nset (to point to itself) so that the mempool item gets freed when the\nmaster_job completes.\n\nmaster_job was introduced by commit c6ea41fbbe08f270a8edef99dc369faf809d1bd6\n(dm kcopyd: preallocate sub jobs to avoid deadlock)\n\nReported-by: Michael Leun \u003cml@newton.leun.net\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5c04b426f2e8b46cfc7969a35b2631063a3c646c",
      "tree": "2d27d9f5d2fe5d5e8fbc01a467ec58bcb50235c1",
      "parents": [
        "499337bb6511e665a236a6a947f819d98ea340c6",
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:30:42 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:30:42 2011 +0200"
      },
      "message": "Merge branch \u0027v3.1-rc10\u0027 into for-3.2/core\n\nConflicts:\n\tblock/blk-core.c\n\tinclude/linux/blkdev.h\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "751e67ca2e2790e9b9b187557d5ba6f96b6c4a7e",
      "tree": "029525eb09d78e63b97d151a0d2e1871d6766885",
      "parents": [
        "d70ed2e4fafdbef0800e73942482bb075c21578b"
      ],
      "author": {
        "name": "Chris Dunlop",
        "email": "chris@onthe.net.au",
        "time": "Wed Oct 19 16:48:26 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 19 17:15:15 2011 +1100"
      },
      "message": "md.c: trivial comment fix\n\nTrivial comment fix\n\nSigned-off-by: Chris Dunlop \u003cchris@onthe.net.au\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d70ed2e4fafdbef0800e73942482bb075c21578b",
      "tree": "a0fb7f9b6993b44e37dc2f724df251bd6fcffae3",
      "parents": [
        "d30519fc59c5cc2f7772fa67b16b1a2426d36c95"
      ],
      "author": {
        "name": "Andrei Warkentin",
        "email": "andreiw@vmware.com",
        "time": "Tue Oct 18 12:16:48 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 18 12:16:48 2011 +1100"
      },
      "message": "MD: Allow restarting an interrupted incremental recovery.\n\nIf an incremental recovery was interrupted, a subsequent\nre-add will result in a full recovery, even though an\nincremental should be possible (seen with raid1).\n\nSolve this problem by not updating the superblock on the\nrecovering device until array is not degraded any longer.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrei Warkentin \u003candreiw@vmware.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d30519fc59c5cc2f7772fa67b16b1a2426d36c95",
      "tree": "3aae0a21c16816e1989ea90db23a5b123a5a6a12",
      "parents": [
        "34db0cd60f8a1f4ab73d118a8be3797c20388223"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 18 12:13:47 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 18 12:13:47 2011 +1100"
      },
      "message": "md: clear In_sync bit on devices added to an active array.\n\nWhen we add a device to an active array it can be meaningful to set\nthe \u0027insync\u0027 flag.  This indicates that the device is in-sync with the\narray except for locations recorded in the bitmap.\nA bitmap-based recovery can then bring it completely in-sync.\n\nInternally we move that flag to \u0027saved_raid_disk\u0027 but forgot to clear\nIn_sync like we do in add_new_disk.\n\nSo clear In_sync after moving its value to saved_raid_disk.\n\nReported-by: Andrei Warkentin \u003candreiw@vmware.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "34db0cd60f8a1f4ab73d118a8be3797c20388223",
      "tree": "45d1d629d6b9195d47d30980595686c9a3ee92f9",
      "parents": [
        "84fc4b56db85cb9e05326424049973a2036c9940"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:50:01 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:50:01 2011 +1100"
      },
      "message": "md: add proper write-congestion reporting to RAID1 and RAID10.\n\nRAID1 and RAID10 handle write requests by queuing them for handling by\na separate thread.  This is because when a write-intent-bitmap is\nactive we might need to update the bitmap first, so it is good to\nqueue a lot of writes, then do one big bitmap update for them all.\n\nHowever writeback request devices to appear to be congested after a\nwhile so it can make some guesstimate of throughput.  The infinite\nqueue defeats that (note that RAID5 has already has a finite queue so\nit doesn\u0027t suffer from this problem).\n\nSo impose a limit on the number of pending write requests.  By default\nit is 1024 which seems to be generally suitable.  Make it configurable\nvia module option just in case someone finds a regression.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "84fc4b56db85cb9e05326424049973a2036c9940",
      "tree": "b8f942766ad620d63da92c24df56032168879253",
      "parents": [
        "29d3247ea2274bca0d0b7f41fcf3b82e0a8bc44c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:58 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:58 2011 +1100"
      },
      "message": "md: rename \"mdk_personality\" to \"md_personality\"\n\n\"mdk\" doesn\u0027t mean anything any more.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "29d3247ea2274bca0d0b7f41fcf3b82e0a8bc44c",
      "tree": "703fae8142e179a6007390a43ff48e18321f848c",
      "parents": [
        "d1688a6d5515f1900af76a963b4bb6d9a6554cfa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:56 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:56 2011 +1100"
      },
      "message": "md/bitmap remove fault injection options.\n\nThese are too hard to use to be much more than noise.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d1688a6d5515f1900af76a963b4bb6d9a6554cfa",
      "tree": "2ed2b1001804b6982697c3785f06580a4e84e31b",
      "parents": [
        "e8096360476689898f038feebf5b352c9ec43a2a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:52 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:52 2011 +1100"
      },
      "message": "md/raid5: typedef removal: raid5_conf_t -\u003e struct r5conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e8096360476689898f038feebf5b352c9ec43a2a",
      "tree": "e7570a5fc3cb0e40f29c55470a2261e03c44a8d1",
      "parents": [
        "e879a8793f915aa7933364d962d2435bd71de462"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:05 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:05 2011 +1100"
      },
      "message": "md/raid1: typedef removal: conf_t -\u003e struct r1conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e879a8793f915aa7933364d962d2435bd71de462",
      "tree": "bf62ccd52171bdaebd1d09b98f049950e39dd198",
      "parents": [
        "e373ab109172abc2d821bd3b5c1b400acddef5a5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:02 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:02 2011 +1100"
      },
      "message": "md/raid10: typedef removal: conf_t -\u003e struct r10conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e373ab109172abc2d821bd3b5c1b400acddef5a5",
      "tree": "48ca1b8ded6ec90a47015ab7316fe8cadb9f8d05",
      "parents": [
        "69724e28ca99990a8f0b5370bb946d7704936d67"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:59 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:59 2011 +1100"
      },
      "message": "md/raid0: typedef removal: raid0_conf_t -\u003e struct r0conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "69724e28ca99990a8f0b5370bb946d7704936d67",
      "tree": "b811de8d2d76a7976a9ef26d2bffddb7289ae495",
      "parents": [
        "e849b9381f726c0fa20c4e7b7139b936df777084"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:57 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:57 2011 +1100"
      },
      "message": "md/multipath: typedef removal: multipath_conf_t -\u003e struct mpconf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e849b9381f726c0fa20c4e7b7139b936df777084",
      "tree": "8f1a8b8cf0afb7621c9025fb6ead7d8e9f319b95",
      "parents": [
        "8f1ae43dd27eff2d71708be46fad339dbdd70bd1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:54 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:54 2011 +1100"
      },
      "message": "md/linear: typedef removal: linear_conf_t -\u003e struct linear_conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8f1ae43dd27eff2d71708be46fad339dbdd70bd1",
      "tree": "7e4a4e991e96a94fe98ffb811da9bf25ace4d283",
      "parents": [
        "a71207713a36e73fb1bc264453a9c594b95d3af1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:52 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:52 2011 +1100"
      },
      "message": "md/faulty: remove typedef: conf_t -\u003e struct faulty_conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a71207713a36e73fb1bc264453a9c594b95d3af1",
      "tree": "5b7fbeae4af391fd52f870af0128e49b1e671975",
      "parents": [
        "0f6d02d580ca77ee4be085c29c5fe5b879df24d9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:49 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:49 2011 +1100"
      },
      "message": "md/linear: remove typedefs: dev_info_t -\u003e struct dev_info\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0f6d02d580ca77ee4be085c29c5fe5b879df24d9",
      "tree": "6ac3a0f3fba6cc6f8d66e9c413460ab5a740db8e",
      "parents": [
        "9f2c9d12bcc53fcb3b787023723754e84d1aef8b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:46 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:46 2011 +1100"
      },
      "message": "md: remove typedefs: mirror_info_t -\u003e struct mirror_info\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9f2c9d12bcc53fcb3b787023723754e84d1aef8b",
      "tree": "85fbc63c6e480bdebe06529e1af4d3d483d70452",
      "parents": [
        "2b8bf3451d1e3133ebc3998721d14013a6c27114"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:43 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:43 2011 +1100"
      },
      "message": "md: remove typedefs: r10bio_t -\u003e struct r10bio and r1bio_t -\u003e struct r1bio\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2b8bf3451d1e3133ebc3998721d14013a6c27114",
      "tree": "6ad9afb9124d5eb865d513ec3f30259231075a8f",
      "parents": [
        "fd01b88c75a718020ff77e7f560d33835e9b58de"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:23 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:48:23 2011 +1100"
      },
      "message": "md: remove typedefs: mdk_thread_t -\u003e struct md_thread\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fd01b88c75a718020ff77e7f560d33835e9b58de",
      "tree": "c455d5adefd58f3263dcf265bb8ba2024523b106",
      "parents": [
        "3cb03002000f133f9f97269edefd73611eafc873"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:47:53 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:47:53 2011 +1100"
      },
      "message": "md: remove typedefs: mddev_t -\u003e struct mddev\n\nHaving mddev_t and \u0027struct mddev_s\u0027 is ugly and not preferred\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "3cb03002000f133f9f97269edefd73611eafc873",
      "tree": "77fdb146666298b33aaeef0c05f082b6f82840fe",
      "parents": [
        "50de8df4abca1b27dbf7b2f81a56451bd8b5a7d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:45:26 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:45:26 2011 +1100"
      },
      "message": "md: removing typedefs:  mdk_rdev_t -\u003e struct md_rdev\n\nThe typedefs are just annoying. \u0027mdk\u0027 probably refers to \u0027md_k.h\u0027\nwhich used to be an include file that defined this thing.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "50de8df4abca1b27dbf7b2f81a56451bd8b5a7d8",
      "tree": "7f0288247afd84707f2529634a5d4a64e9b8f046",
      "parents": [
        "36a4e1fe0f454146724c174bf7c1e8e76297a212"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:22 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:22 2011 +1100"
      },
      "message": "md/raid0: convert some printks to pr_debug.\n\nWhen md assembles a RAID0 array it prints out lots of info which\nis really just for debugging, so convert that to pr_debug.\nIt also prints out the resulting configuration which could be\ninteresting, so keep that as \u0027printk\u0027 but tidy it up a bit.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "36a4e1fe0f454146724c174bf7c1e8e76297a212",
      "tree": "57f0de83fda98e5ae1b4f66d5e993ca27386a793",
      "parents": [
        "bdc04e6b15f70a8f96d8cdfe21df159a6466b49a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:17 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:17 2011 +1100"
      },
      "message": "md: remove PRINTK and dprintk debugging and use pr_debug\n\nBeing able to dynamically enable these make them much more useful.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bdc04e6b15f70a8f96d8cdfe21df159a6466b49a",
      "tree": "23b762d044dafe35ac2fb20214fc1eff77a41bdd",
      "parents": [
        "db298e1946c074c83d97f1c959fbc0def2af2c86"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:04 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:04 2011 +1100"
      },
      "message": "md: remove some old DEBUGging code.\n\nThis code is not really helpful and is hard to maintain, so just\ndiscard it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "db298e1946c074c83d97f1c959fbc0def2af2c86",
      "tree": "1fb0ff7c0d6b85216d391e82b84af07b032fb987",
      "parents": [
        "0fc280f606742e8a2969776b2ab11cf6a614d9e1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:00 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:23:00 2011 +1100"
      },
      "message": "md/raid5: convert to macros into inline functions.\n\nMore type-safety.  Easier to read.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0fc280f606742e8a2969776b2ab11cf6a614d9e1",
      "tree": "5725762cf7bc5eddcf0007584dfa7ba6eb67d3d8",
      "parents": [
        "ba3ae3bee317f0a5db813c026c8a8c113a4e40fb"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:55 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:55 2011 +1100"
      },
      "message": "md/raid1/ avoid bio search in end_sync_read()\n\nWe know which device we just read from so we don\u0027t need to\nsearch the bios to find out.  Just use -\u003eread_disk.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ba3ae3bee317f0a5db813c026c8a8c113a4e40fb",
      "tree": "30a8c9d55afc32156973a3b1efb1cec94f4411d4",
      "parents": [
        "e4f869d9de18bc8272df8d0ab764178aa24bdf33"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Fri Oct 07 14:22:53 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:53 2011 +1100"
      },
      "message": "md/raid1: factor out common bio handling code\n\nWhen normal-write and sync-read/write bio completes, we should\nfind out the disk number the bio belongs to. Factor those common\ncode out to a separate function.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e4f869d9de18bc8272df8d0ab764178aa24bdf33",
      "tree": "9782f85edbecdb83dab65f2fab4390264b0d7139",
      "parents": [
        "ce550c2059a67ee7834fc6f64cf895391d36a58e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:49 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:49 2011 +1100"
      },
      "message": "md/raid5: remove pointless NULL test.\n\nIn the \u0027abort\u0027 branch of run(), \u0027conf\u0027 cannot possibly be NULL,\nso remove the test.\n\nReported-by: Zdenek Kabelac \u003czdenek.kabelac@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ce550c2059a67ee7834fc6f64cf895391d36a58e",
      "tree": "55d73447b2d75597802955559706a17feda9ce68",
      "parents": [
        "2dba6a911c284603d2085fec1e2d3c142f58a010"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Oct 07 14:22:33 2011 +1100"
      },
      "message": "md/raid1:  add documentation to r1_private_data_s data structure.\n\nThere wasn\u0027t much and it is inconsistent.\nAlso rearrange fields to keep related fields together.\n\nReported-by: Aapo Laine \u003caapo.laine@shiftmail.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6367f1775ebb66b0f0e9e3512159f3257a6fde0e",
      "tree": "113dadfab2a16ab63047a8b350f9facdb5060a82",
      "parents": [
        "a7c56ebac1bce799b583230595b4de9ccb8162d0",
        "983c7db347db8ce2d8453fd1d89b7a4bb6920d56"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 06 08:31:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 06 08:31:47 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of http://people.redhat.com/agk/git/linux-dm\n\n* \u0027for-linus\u0027 of http://people.redhat.com/agk/git/linux-dm:\n  dm crypt: always disable discard_zeroes_data\n  dm: raid fix write_mostly arg validation\n  dm table: avoid crash if integrity profile changes\n  dm: flakey fix corrupt_bio_byte error path\n"
    },
    {
      "commit": "983c7db347db8ce2d8453fd1d89b7a4bb6920d56",
      "tree": "f4302d7eb306b82db4227ba5defe6d178949831b",
      "parents": [
        "8232480944d173378082ebb2cac8a3207c08cf31"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Sun Sep 25 23:26:21 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Sep 25 23:26:21 2011 +0100"
      },
      "message": "dm crypt: always disable discard_zeroes_data\n\nIf optional discard support in dm-crypt is enabled, discards requests\nbypass the crypt queue and blocks of the underlying device are discarded.\nFor the read path, discarded blocks are handled the same as normal\nciphertext blocks, thus decrypted.\n\nSo if the underlying device announces discarded regions return zeroes,\ndm-crypt must disable this flag because after decryption there is just\nrandom noise instead of zeroes.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8232480944d173378082ebb2cac8a3207c08cf31",
      "tree": "d77436773e5c8a2274e1b0db507e5c251f225ecf",
      "parents": [
        "876fbba1db4a377f050a2bb49b474c7527b2995d"
      ],
      "author": {
        "name": "Jonthan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Sun Sep 25 23:26:19 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Sep 25 23:26:19 2011 +0100"
      },
      "message": "dm: raid fix write_mostly arg validation\n\nFix off-by-one error in validation of write_mostly.\n\nThe user-supplied value given for the \u0027write_mostly\u0027 argument must be an\nindex starting at 0.  The validation of the supplied argument failed to\ncheck for \u0027N\u0027 (\u0027\u003e\u0027 vs \u0027\u003e\u003d\u0027), which would have caused an access beyond the\nend of the array.\n\nReported-by: Doug Ledford \u003cdledford@redhat.com\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "876fbba1db4a377f050a2bb49b474c7527b2995d",
      "tree": "df134b1c01cd6385afe7ff7171eb722063de6b4b",
      "parents": [
        "68e58a294fb26f692697179e3f3ecf88dd8cb97c"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sun Sep 25 23:26:17 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Sep 25 23:26:17 2011 +0100"
      },
      "message": "dm table: avoid crash if integrity profile changes\n\nCommit a63a5cf (dm: improve block integrity support) introduced a\ntwo-phase initialization of a DM device\u0027s integrity profile.  This\npatch avoids dereferencing a NULL \u0027template_disk\u0027 pointer in\nblk_integrity_register() if there is an integrity profile mismatch in\ndm_table_set_integrity().\n\nThis can occur if the integrity profiles for stacked devices in a DM\ntable are changed between the call to dm_table_prealloc_integrity() and\ndm_table_set_integrity().\n\nReported-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: stable@kernel.org # 2.6.39\n"
    },
    {
      "commit": "68e58a294fb26f692697179e3f3ecf88dd8cb97c",
      "tree": "4576ce77f692c4acf85883b5d18127c5806bdf64",
      "parents": [
        "d93dc5c4478c1fd5de85a3e8aece9aad7bbae044"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sun Sep 25 23:26:15 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Sep 25 23:26:15 2011 +0100"
      },
      "message": "dm: flakey fix corrupt_bio_byte error path\n\nIf no arguments were provided to the corrupt_bio_byte feature an error\nshould be returned immediately.\n\nReported-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2dba6a911c284603d2085fec1e2d3c142f58a010",
      "tree": "8db93ad2131afd519b9d618f12841ec5d981c082",
      "parents": [
        "7e841526263b3e0042a423513147dfd06c8e998d"
      ],
      "author": {
        "name": "Daniel P. Berrange",
        "email": "berrange@redhat.com",
        "time": "Fri Sep 23 10:40:45 2011 +0100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Sep 23 19:54:04 2011 +1000"
      },
      "message": "md: don\u0027t delay reboot by 1 second if no MD devices exist\n\nThe md_notify_reboot() method includes a call to mdelay(1000),\nto deal with \"exotic SCSI devices\" which are too volatile on\nreboot. The delay is unconditional. Even if the machine does\nnot have any block devices, let alone MD devices, the kernel\nshutdown sequence is slowed down.\n\n1 second does not matter much with physical hardware, but with\ncertain virtualization use cases any wasted time in the bootup\n\u0026 shutdown sequence counts for alot.\n\n* drivers/md/md.c: md_notify_reboot() - only impose a delay if\n  there was at least one MD device to be stopped during reboot\n\nSigned-off-by: Daniel P. Berrange \u003cberrange@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7e841526263b3e0042a423513147dfd06c8e998d",
      "tree": "c576c1f968713c6f4ba020a8de744af757cbffe7",
      "parents": [
        "2585f3ef8c7fffe750ef1feb2775023716d799a8"
      ],
      "author": {
        "name": "Wang Sheng-Hui",
        "email": "shhuiw@gmail.com",
        "time": "Wed Sep 21 15:37:46 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:37:46 2011 +1000"
      },
      "message": "trival: md_k.h should be md.h in the beginning comment of file md.h\n\nSigned-off-by: Wang Sheng-Hui \u003cshhuiw@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2585f3ef8c7fffe750ef1feb2775023716d799a8",
      "tree": "3faccf1f22eb01bea55f49926a913446134df1d2",
      "parents": [
        "5a537df44d52331a3d2792ca21a296959bd2ac3a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:37:46 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:37:46 2011 +1000"
      },
      "message": "md/bitmap: improve handling of \u0027allclean\u0027.\n\nThe \u0027allclean\u0027 flag is used to cache the fact that there is nothing to\ndo, so we can avoid waking up and scanning the bitmap regularly.\n\nThe two sorts of pages that might need the attention of the bitmap\ndaemon are BITMAP_PAGE_PENDING and BITMAP_PAGE_NEEDWRITE pages.\n\nSo make sure allclean reflects exactly when there are none of those.\nSo:\n  set it before scanning all pages with either bit set.\n  clear it whenever these bits are set\n  clear it when we desire not to clear one of these bits.\n  don\u0027t clear it any other time.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5a537df44d52331a3d2792ca21a296959bd2ac3a",
      "tree": "31907bdb1be692583702cd8be91de2a578a6f0d5",
      "parents": [
        "01f96c0a9922cd9919baf9d16febdf7016177a12"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:37:46 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:37:46 2011 +1000"
      },
      "message": "md/bitmap: rename and tidy up BITMAP_PAGE_CLEAN\n\nThe flag \u0027BITMAP_PAGE_CLEAN\u0027 has a confusing name as it doesn\u0027t mean\nthat the page is clean, but rather that there are counters in the page\nwhich allow bits in the bitmap to be cleared - i.e. maybe cleaning can\nhappen.\n\nSo change it to BITMAP_PAGE_PENDING and fix some irregularities:\n - Don\u0027t set it in bitmap_init_from_disk as bitmap_set_memory_bits\n   sets it when needed\n - in bitmap_daemon_work, if we find a counter that is \u00271\u0027, but\n   need_sync is set, then set BITMAP_PAGE_PENDING again (it was\n   recently cleared) to ensure we don\u0027t forget about this bit.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e   \n"
    },
    {
      "commit": "01f96c0a9922cd9919baf9d16febdf7016177a12",
      "tree": "a877fe509c4ef0db5252b7192df56009c1d06d6f",
      "parents": [
        "27a7b260f71439c40546b43588448faac01adb93"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:30:20 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Sep 21 15:30:20 2011 +1000"
      },
      "message": "md: Avoid waking up a thread after it has been freed.\n\nTwo related problems:\n\n1/ some error paths call \"md_unregister_thread(mddev-\u003ethread)\"\n   without subsequently clearing -\u003ethread.  A subsequent call\n   to mddev_unlock will try to wake the thread, and crash.\n\n2/ Most calls to md_wakeup_thread are protected against the thread\n   disappeared either by:\n      - holding the -\u003emutex\n      - having an active request, so something else must be keeping\n        the array active.\n   However mddev_unlock calls md_wakeup_thread after dropping the\n   mutex and without any certainty of an active request, so the\n   -\u003ethread could theoretically disappear.\n   So we need a spinlock to provide some protections.\n\nSo change md_unregister_thread to take a pointer to the thread\npointer, and ensure that it always does the required locking, and\nclears the pointer properly.\n\nReported-by: \"Moshe Melnikov\" \u003cmoshe@zadarastorage.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "5a7bbad27a410350e64a2d7f5ec18fc73836c14f",
      "tree": "3447cd62dbcbd77b4071e2eb7576f1d7632ef2d3",
      "parents": [
        "c20e8de27fef9f59869c81c288ad6cf28200e00c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 12 12:12:01 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 12 12:12:01 2011 +0200"
      },
      "message": "block: remove support for bio remapping from -\u003emake_request\n\nThere is very little benefit in allowing to let a -\u003emake_request\ninstance update the bios device and sector and loop around it in\n__generic_make_request when we can archive the same through calling\ngeneric_make_request from the driver and letting the loop in\ngeneric_make_request handle it.\n\nNote that various drivers got the return value from -\u003emake_request and\nreturned non-zero values for errors.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c20e8de27fef9f59869c81c288ad6cf28200e00c",
      "tree": "c1d972bfdf6b0f562169a923f2d77f422578fac1",
      "parents": [
        "166e1f901b01872e8b70733a3f2e2c6980389cf8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 12 12:03:37 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 12 12:08:31 2011 +0200"
      },
      "message": "block: rename __make_request() to blk_queue_bio()\n\nNow that it\u0027s exported, lets put it in a more sane namespace.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "166e1f901b01872e8b70733a3f2e2c6980389cf8",
      "tree": "bb0a52bfe76e60bb430cd6a5f91ceb9b6ecaa7b2",
      "parents": [
        "484fc254b88257a2d8b3759aa062e8e8b35e0988"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 12 12:08:27 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 12 12:08:27 2011 +0200"
      },
      "message": "block: export __make_request\n\nAvoid the hacks need for request based device mappers currently by simply\nexporting the symbol instead of trying to get it through the back door.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "27a7b260f71439c40546b43588448faac01adb93",
      "tree": "80fdd39a446f93fa84a355cf4d0118244b4d7fd6",
      "parents": [
        "079fa166a2874985ae58b2e21e26e1cbc91127d4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:21:28 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:21:28 2011 +1000"
      },
      "message": "md: Fix handling for devices from 2TB to 4TB in 0.90 metadata.\n\n0.90 metadata uses an unsigned 32bit number to count the number of\nkilobytes used from each device.\nThis should allow up to 4TB per device.\nHowever we multiply this by 2 (to get sectors) before casting to a\nlarger type, so sizes above 2TB get truncated.\n\nAlso we allow rdev-\u003esectors to be larger than 4TB, so it is possible\nfor the array to be resized larger than the metadata can handle.\nSo make sure rdev-\u003esectors never exceeds 4TB when 0.90 metadata is in\nused.\n\nAlso the sanity check at the end of super_90_load should include level\n1 as it used -\u003esize too. (RAID0 and Linear don\u0027t use -\u003esize at all).\n\nReported-by: Pim Zandbergen \u003cP.Zandbergen@macroscoop.nl\u003e\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "079fa166a2874985ae58b2e21e26e1cbc91127d4",
      "tree": "39f67f9078465bd67c29216b35370a78907e4f3b",
      "parents": [
        "19d5f834d6aff7efb1c9353523865c5bce869470"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:21:23 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:21:23 2011 +1000"
      },
      "message": "md/raid1,10: Remove use-after-free bug in make_request.\n\nA single request to RAID1 or RAID10 might result in multiple\nrequests if there are known bad blocks that need to be avoided.\n\nTo detect if we need to submit another write request we test:\n \tif (sectors_handled \u003c (bio-\u003ebi_size \u003e\u003e 9)) {\n\nHowever this is after we call **_write_done() so the \u0027bio\u0027 no longer\nbelongs to us - the writes could have completed and the bio freed.\n\nSo move the **_write_done call until after the test against\nbio-\u003ebi_size.\n\nThis addresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d41862\n\nReported-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nTested-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "19d5f834d6aff7efb1c9353523865c5bce869470",
      "tree": "01c18b17519df9034bbcaf126eac9d9318143a1d",
      "parents": [
        "94007751bb02797ba87bac7aacee2731ac2039a3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:21:17 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:21:17 2011 +1000"
      },
      "message": "md/raid10: unify handling of write completion.\n\nA write can complete at two different places:\n1/ when the last member-device write completes, through\n   raid10_end_write_request\n2/ in make_request() when we remove the initial bias from -\u003eremaining.\n\nThese two should do exactly the same thing and the comment says they\ndo, but they don\u0027t.\n\nSo factor the correct code out into a function and call it in both\nplaces.  This makes the code much more similar to RAID1.\n\nThe difference is only significant if there is an error, and they\nusually take a while, so it is unlikely that there will be an error\nalready when make_request is completing, so this is unlikely to cause\nreal problems.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "43220aa0f22cd3ce5b30246d50ccd696d119edea",
      "tree": "2738ff3d5acfbe899f30c4991175f945211e941d",
      "parents": [
        "7da64a0abc3b2c6cbd3521672e9bb74dd560bb89"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Aug 31 12:49:14 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Aug 31 12:49:14 2011 +1000"
      },
      "message": "md/raid5: fix a hang on device failure.\n\nWaiting for a \u0027blocked\u0027 rdev to become unblocked in the raid5d thread\ncannot work with internal metadata as it is the raid5d thread which\nwill clear the blocked flag.\nThis wasn\u0027t a problem in 3.0 and earlier as we only set the blocked\nflag when external metadata was used then.\nHowever we now set it always, so we need to be more careful.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7da64a0abc3b2c6cbd3521672e9bb74dd560bb89",
      "tree": "1b17033fe40a2b29c7e4d6a2f200f54f39514a4d",
      "parents": [
        "1b6afa17581027218088a18a9ceda600e0ddba7a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 30 16:20:17 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Aug 30 16:20:17 2011 +1000"
      },
      "message": "md: fix clearing of \u0027blocked\u0027 flag in the presence of bad blocks.\n\nWhen the \u0027blocked\u0027 flag on a device is cleared while there are\nunacknowledged bad blocks we must fail the device.  This is needed for\nbackwards compatability of the interface.\n\nThe code currently uses the wrong test for \"unacknowledged bad blocks\nexist\".  Change it to the right test.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1b6afa17581027218088a18a9ceda600e0ddba7a",
      "tree": "b1e8f78bf3f216b7b3d7f740c18009bc29592ed1",
      "parents": [
        "a5bf4df0c88b88d34b6f0e3bc8a402dac7d14611"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:43:53 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:43:53 2011 +1000"
      },
      "message": "md/linear: avoid corrupting structure while waiting for rcu_free to complete.\n\nI don\u0027t know what I was thinking putting \u0027rcu\u0027 after a dynamically\nsized array!  The array could still be in use when we call rcu_free()\n(That is the point) so we mustn\u0027t corrupt it.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a5bf4df0c88b88d34b6f0e3bc8a402dac7d14611",
      "tree": "40296244aa28ddff0360a1a57878a99926243620",
      "parents": [
        "aeb9b211849621f592288ed5ad694de9eeaae87a"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Aug 25 14:43:34 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:43:34 2011 +1000"
      },
      "message": "md: use REQ_NOIDLE flag in md_super_write()\n\nQueue idling is used for the anticipation of immediate\nsequencial I/O\u0027s but md_super_write() is a kind of one-\nshot operation, coupled with md_super_wait(), so the\nidling in this case will be just a waste of time.\n\nSpecifying REQ_NOIDLE prevents it. Instead of adding\nthe flag to submit_bio() directly, use pre-defined\nmacro WRITE_FLUSH_FUA.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "aeb9b211849621f592288ed5ad694de9eeaae87a",
      "tree": "affa418deafe2f218dc84e4aeb6ed4bbaf85d3e5",
      "parents": [
        "5ef56c8fecedf403a346d02140e52a072d693d6b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:43:08 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:43:08 2011 +1000"
      },
      "message": "md: ensure changes to \u0027write-mostly\u0027 are reflected in metadata.\n\nThe \u0027write-mostly\u0027 flag can be changed through sysfs.\nWith 0.90 metadata, those changes are reflected in the metadata.\nFor 1.x metadata, they aren\u0027t.\n\nSo fix super_1_sync to record \u0027write-mostly\u0027 status.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5ef56c8fecedf403a346d02140e52a072d693d6b",
      "tree": "1f121fe5e4db61364c352e7ffe2293a1cc20e9a9",
      "parents": [
        "14c62e78dc1379185515be41903c4a667efc6d54"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:42:51 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 25 14:42:51 2011 +1000"
      },
      "message": "md: report failure if a \u0027set faulty\u0027 request doesn\u0027t.\n\nSometimes a device will refuse to be set faulty.  e.g. RAID1 will\nnever let the last working device become faulty.\n\nSo check if \"md_error()\" did manage to set the faulty flag and fail\nwith EBUSY if it didn\u0027t.\n\nResolves-Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d601198\nReported-by: Mike Hommey \u003cmh+reportbug@glandium.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ed8b752bccf2560e305e25125721d2f0ac759e88",
      "tree": "b909fcf21ca7cdda3e7a680b37162212cce99586",
      "parents": [
        "772ae5f54d69c38a5e3c4352c5fdbdaff141af21"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Aug 02 12:32:08 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:08 2011 +0100"
      },
      "message": "dm table: set flush capability based on underlying devices\n\nDM has always advertised both REQ_FLUSH and REQ_FUA flush capabilities\nregardless of whether or not a given DM device\u0027s underlying devices\nalso advertised a need for them.\n\nBlock\u0027s flush-merge changes from 2.6.39 have proven to be more costly\nfor DM devices.  Performance regressions have been reported even when\nDM\u0027s underlying devices do not advertise that they have a write cache.\n\nFix the performance regressions by configuring a DM device\u0027s flushing\ncapabilities based on those of the underlying devices\u0027 capabilities.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "772ae5f54d69c38a5e3c4352c5fdbdaff141af21",
      "tree": "727b6dc7596b8250d644214695f09e3d6c7e43d1",
      "parents": [
        "327372797c88b24953f454cd51a3734c02697bdd"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Aug 02 12:32:08 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:08 2011 +0100"
      },
      "message": "dm crypt: optionally support discard requests\n\nAdd optional parameter field to dmcrypt table and support\n\"allow_discards\" option.\n\nDiscard requests bypass crypt queue processing. Bio is simple remapped\nto underlying device.\n\nNote that discard will be never enabled by default because of security\nconsequences.  It is up to the administrator to enable it for encrypted\ndevices.\n\n(Note that userspace cryptsetup does not understand new optional\nparameters yet.  Support for this will come later.  Until then, you\nshould use \u0027dmsetup\u0027 to enable and disable this.)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "327372797c88b24953f454cd51a3734c02697bdd",
      "tree": "e7f7e3dff1415817b31af76d746240d80772b448",
      "parents": [
        "b12d437b73d32203a41fde0d407e91812c866844"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add md raid1 support\n\nSupport the MD RAID1 personality through dm-raid.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b12d437b73d32203a41fde0d407e91812c866844",
      "tree": "3c7a33f4a45779da4a5edb71678ce7f8ae4169e7",
      "parents": [
        "46bed2b5c16bb7c82e1088d7ae75fb958c8a8c4e"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: support metadata devices\n\nAdd the ability to parse and use metadata devices to dm-raid.  Although\nnot strictly required, without the metadata devices, many features of\nRAID are unavailable.  They are used to store a superblock and bitmap.\n\nThe role, or position in the array, of each device must be recorded in\nits superblock.  This is to help with fault handling, array reshaping,\nand sanity checks.  RAID 4/5/6 devices must be loaded in a specific order:\nin this way, the \u0027array_position\u0027 field helps validate the correctness\nof the mapping when it is loaded.  It can be used during reshaping to\nidentify which devices are added/removed.  Fault handling is impossible\nwithout this field.  For example, when a device fails it is recorded in\nthe superblock.  If this is a RAID1 device and the offending device is\nremoved from the array, there must be a way during subsequent array\nassembly to determine that the failed device was the one removed.  This\nis done by correlating the \u0027array_position\u0027 field and the bit-field\nvariable \u0027failed_devices\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "46bed2b5c16bb7c82e1088d7ae75fb958c8a8c4e",
      "tree": "bab932a8eec324ca470407ff54097d86a3c0e27f",
      "parents": [
        "c1084561bb85da3630540ebe951749a8cd8fc714"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add write_mostly parameter\n\nAdd the write_mostly parameter to RAID1 dm-raid tables.\n\nThis allows the user to set the WriteMostly flag on a RAID1 device that\nshould normally be avoided for read I/O.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c1084561bb85da3630540ebe951749a8cd8fc714",
      "tree": "ecdefcf24dd88f4c19a873fa5d26039a0edf03a7",
      "parents": [
        "c0a2fa1ef1057a1e9450d6f055f1cde2ad4f85a2"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add region_size parameter\n\nAllow the user to specify the region_size.\n\nEnsures that the supplied value meets md\u0027s constraints, viz. the number of\nregions does not exceed 2^21.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "759dea204cce9f1fc2a5d00ea25211299fc7a4a0",
      "tree": "3ddbfdc0c4cb97317ea0d0d7bb6879fcac72b840",
      "parents": [
        "ba2e19b0f4ccd6920fe175a86521ff18ede260cb"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "message": "dm ioctl: forbid multiple device specifiers\n\nExactly one of name, uuid or device must be specified when referencing\nan existing device.  This removes the ambiguity (risking the wrong\ndevice being updated) if two conflicting parameters were specified.\nPreviously one parameter got used and any others were ignored silently.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ba2e19b0f4ccd6920fe175a86521ff18ede260cb",
      "tree": "25a9533cfbd1946da36483c3172914b9ea1f51cb",
      "parents": [
        "0ddf9644cc26e74ed671525e61a17bdbebf18da6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:06 2011 +0100"
      },
      "message": "dm ioctl: introduce __get_dev_cell\n\nMove logic to find device based on major/minor number to a separate\nfunction __get_dev_cell (similar to __get_uuid_cell and __get_name_cell).\nThis makes the function __find_device_hash_cell more straightforward.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    }
  ],
  "next": "0ddf9644cc26e74ed671525e61a17bdbebf18da6"
}
