)]}'
{
  "log": [
    {
      "commit": "d76c8420c3cf8e468901b0bd58306637335c98ea",
      "tree": "1dd7c5f1f19fb827968343e08e2cc5ed87358f05",
      "parents": [
        "83425eee85c6235392e3fe865faf533a48b60ab3"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Apr 21 09:07:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 21 10:00:00 2011 -0700"
      },
      "message": "raid5: fix build error, sector_t usage\n\nChange \u003csectors\u003e from unsigned long long to sector_t.\nThis matches its source field.\n\n  ERROR: \"__udivdi3\" [drivers/md/raid456.ko] undefined!\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fee68723cf6ae00082f70f3eff17fceab2a4f7d7",
      "tree": "2ff52c9cce0115bc745b60bd9c0faffed8dd46f0",
      "parents": [
        "3b71bd9337b404baab5c894e066be6b6bf51b1c3"
      ],
      "author": {
        "name": "Krzysztof Wojcik",
        "email": "krzysztof.wojcik@intel.com",
        "time": "Wed Apr 20 15:39:53 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Apr 20 15:39:53 2011 +1000"
      },
      "message": "md: Cleanup after raid45-\u003eraid0 takeover\n\nProblem:\nAfter raid4-\u003eraid0 takeover operation, another takeover operation\n(e.g raid0-\u003eraid10) results \"kernel oops\".\nRoot cause:\nVariables \u0027degraded\u0027 in mddev structure is not cleared\non raid45-\u003eraid0 takeover.\n\nThis patch reset this variable.\n\nSigned-off-by: Krzysztof Wojcik \u003ckrzysztof.wojcik@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "3b71bd9337b404baab5c894e066be6b6bf51b1c3",
      "tree": "23d29cf358319194092c41ed4748908e1b301180",
      "parents": [
        "2b7da309ffe602d222558cee4d7e407b96e34b3a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Apr 20 15:38:18 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Apr 20 15:38:18 2011 +1000"
      },
      "message": "md: Fix dev_sectors on takeover from raid0 to raid4/5\n\nA raid0 array doesn\u0027t set \u0027dev_sectors\u0027 as each device might\ncontribute a different number of sectors.\nSo when converting to a RAID4 or RAID5 we need to set dev_sectors\nas they need the number.\nWe have already verified that in fact all devices do contribute\nthe same number of sectors, so use that number.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2b7da309ffe602d222558cee4d7e407b96e34b3a",
      "tree": "34e3dc62926676983855aa0a4aa100aaabc98169",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Apr 20 15:38:07 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Apr 20 15:38:07 2011 +1000"
      },
      "message": "md/raid5: remove setting of -\u003equeue_lock\n\nWe previously needed to set -\u003equeue_lock to match the raid5\ndevice_lock so we could safely use queue_flag_* operations (e.g. for\nplugging). which test the -\u003equeue_lock is in fact locked.\n\nHowever that need has completely gone away and is unlikely to come\nback to remove this now-pointless setting.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c3b328ac846bcf6b9a62c5563380a81ab723006d",
      "tree": "f9b78651beec3d66cf2ab7cf7a8080fa1cfe5b99",
      "parents": [
        "7c13edc87510f665da3094174e1fd633e06649f4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:43 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:43 2011 +1000"
      },
      "message": "md: fix up raid1/raid10 unplugging.\n\nWe just need to make sure that an unplug event wakes up the md\nthread, which is exactly what mddev_check_plugged does.\n\nAlso remove some plug-related code that is no longer needed.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7c13edc87510f665da3094174e1fd633e06649f4",
      "tree": "c0c50ab6ac43e9c762199bfd94c787f43a8e0896",
      "parents": [
        "97658cdd3af7d01461874c93b89afa4a2465e7c6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:43 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:43 2011 +1000"
      },
      "message": "md: incorporate new plugging into raid5.\n\nIn raid5 plugging is used for 2 things:\n 1/ collecting writes that require a bitmap update\n 2/ collecting writes in the hope that we can create full\n    stripes - or at least more-full.\n\nWe now release these different sets of stripes when plug_cnt\nis zero.\n\nAlso in make_request, we call mddev_check_plug to hopefully increase\nplug_cnt, and wake up the thread at the end if plugging wasn\u0027t\nachieved for some reason.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "97658cdd3af7d01461874c93b89afa4a2465e7c6",
      "tree": "d4e2f930850eb3981307a3eec8c86399dcebf68a",
      "parents": [
        "482c083492ddaa32ef5864bae3d143dc8bcdf7d1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:42 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:42 2011 +1000"
      },
      "message": "md: provide generic support for handling unplug callbacks.\n\nWhen an md device adds a request to a queue, it can call\nmddev_check_plugged.\nIf this succeeds then we know that the md thread will be woken up\nshortly, and -\u003eplug_cnt will be non-zero until then, so some\nprocessing can be delayed.\n\nIf it fails, then no unplug callback is expected and the make_request\nfunction needs to do whatever is required to make the request happen.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "482c083492ddaa32ef5864bae3d143dc8bcdf7d1",
      "tree": "75017fd1a51fe945c65b3600442ddaa20b636b1a",
      "parents": [
        "af1db72d8b340f97ad12b60175afdef43e6f0e60"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:42 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:42 2011 +1000"
      },
      "message": "md - remove old plugging code.\n\nmd has some plugging infrastructure for RAID5 to use because the\nnormal plugging infrastructure required a \u0027request_queue\u0027, and when\ncalled from dm, RAID5 doesn\u0027t have one of those available.\n\nThis relied on the -\u003eunplug_fn callback which doesn\u0027t exist any more.\n\nSo remove all of that code, both in md and raid5.  Subsequent patches\nwith restore the plugging functionality.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "af1db72d8b340f97ad12b60175afdef43e6f0e60",
      "tree": "c6f3d18bda596d136fdf9f7ba9e2a2ed1fdedc3b",
      "parents": [
        "e1dfa0a29737142c32f00a3bac0f609dc85b4a82"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:41 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:41 2011 +1000"
      },
      "message": "md/dm - remove remains of plug_fn callback.\n\nNow that unplugging is done differently, the unplug_fn callback is\nnever called, so it can be completely discarded.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e1dfa0a29737142c32f00a3bac0f609dc85b4a82",
      "tree": "1af906cc5e959803e7d5ea0e56fb69b56754501a",
      "parents": [
        "99e22598e9a8e0a996d69c8c0f6b7027cb57720a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:41 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 18 18:25:41 2011 +1000"
      },
      "message": "md: use new plugging interface for RAID IO.\n\nmd/raid submits a lot of IO from the various raid threads.\nSo adding start/finish plug calls to those so that some\nplugging happens.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "a63a5cf84dac7a23a57c800eea5734701e7d3c04",
      "tree": "965552b96d7eacc21206a4f28672efd24a04d913",
      "parents": [
        "7dcda1c96d7c643101d4a05579ef4512a4baa7ef"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Apr 01 21:02:31 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Apr 05 23:52:43 2011 +0200"
      },
      "message": "dm: improve block integrity support\n\nThe current block integrity (DIF/DIX) support in DM is verifying that\nall devices\u0027 integrity profiles match during DM device resume (which\nis past the point of no return).  To some degree that is unavoidable\n(stacked DM devices force this late checking).  But for most DM\ndevices (which aren\u0027t stacking on other DM devices) the ideal time to\nverify all integrity profiles match is during table load.\n\nIntroduce the notion of an \"initialized\" integrity profile: a profile\nthat was blk_integrity_register()\u0027d with a non-NULL \u0027blk_integrity\u0027\ntemplate.  Add blk_integrity_is_initialized() to allow checking if a\nprofile was initialized.\n\nUpdate DM integrity support to:\n- check all devices with _initialized_ integrity profiles match\n  during table load; uninitialized profiles (e.g. for underlying DM\n  device(s) of a stacked DM device) are ignored.\n- disallow a table load that would result in an integrity profile that\n  conflicts with a DM device\u0027s existing (in-use) integrity profile\n- avoid clearing an existing integrity profile\n- validate all integrity profiles match during resume; but if they\n  don\u0027t all we can do is report the mismatch (during resume we\u0027re past\n  the point of no return)\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "89078d572eb9ce8d4c04264b8b0ba86de0d74c8f",
      "tree": "d01104f97740c19daf01f49ae170df821a43252c",
      "parents": [
        "7de8e5737df31a6826015a65135ed8f0a32bb2c4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Mon Mar 28 20:09:12 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 17:53:29 2011 -0700"
      },
      "message": "md: Fix integrity registration error when no devices are capable\n\nWe incorrectly returned -EINVAL when none of the devices in the array\nhad an integrity profile.  This in turn prevented mdadm from starting\nthe metadevice.  Fix this so we only return errors on mismatched\nprofiles and memory allocation failures.\n\nReported-by: Giacomo Catenazzi \u003ccate@cateee.net\u003e\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44bbd7ac2658eb1118342493026ef141e259b739",
      "tree": "a804d3503e48ee8b2bd0dd3c40235e482a75a512",
      "parents": [
        "24c6d02fe8c34bc958aa4c464efc1cc10d43e29d",
        "29915202006c2e7bafe81348eb498ff9a724ac61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 20:51:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 20:51:44 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:\n  dm stripe: implement merge method\n  dm mpath: allow table load with no priority groups\n  dm mpath: fail message ioctl if specified path is not valid\n  dm ioctl: add flag to wipe buffers for secure data\n  dm ioctl: prepare for crypt key wiping\n  dm crypt: wipe keys string immediately after key is set\n  dm: add flakey target\n  dm: fix opening log and cow devices for read only tables\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "29915202006c2e7bafe81348eb498ff9a724ac61",
      "tree": "0fc9b1fb5c58ed148316d7a5718de1b290dcde18",
      "parents": [
        "a490a07a67b7a37f588021410e06b721a752fc34"
      ],
      "author": {
        "name": "Mustafa Mesanovic",
        "email": "mume@linux.vnet.ibm.com",
        "time": "Thu Mar 24 13:54:35 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:35 2011 +0000"
      },
      "message": "dm stripe: implement merge method\n\nImplement a merge function in the striped target.\n\nWhen the striped target\u0027s underlying devices provide a merge_bvec_fn\n(like all DM devices do via dm_merge_bvec) it is important to call down\nto them when building a biovec that doesn\u0027t span a stripe boundary.\n\nWithout the merge method, a striped DM device stacked on DM devices\ncauses bios with a single page to be submitted which results\nin unnecessary overhead that hurts performance.\n\nThis change really helps filesystems (e.g. XFS and now ext4) which take\ncare to assemble larger bios.  By implementing stripe_merge(), DM and the\nstripe target no longer undermine the filesystem\u0027s work by only allowing\na single page per bio.  Buffered IO sees the biggest improvement\n(particularly uncached reads, buffered writes to a lesser degree).  This\nis especially so for more capable \"enterprise\" storage LUNs.\n\nThe performance improvement has been measured to be ~12-35% -- when a\nreasonable chunk_size is used (e.g. 64K) in conjunction with a stripe\ncount that is a power of 2.\n\nIn contrast, the performance penalty is ~5-7% for the pathological worst\ncase stripe configuration (small chunk_size with a stripe count that is\nnot a power of 2).  The reason for this is that stripe_map_sector() is\nnow called once for every call to dm_merge_bvec().  stripe_map_sector()\nwill use slower division if stripe count isn\u0027t a power of 2.\n\nSigned-off-by: Mustafa Mesanovic \u003cmume@linux.vnet.ibm.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a490a07a67b7a37f588021410e06b721a752fc34",
      "tree": "ce48096d6991f7e16bf100dd91cae9c10e37bf59",
      "parents": [
        "19040c0bc8efcb767221d8ef7bb9c32ff0586179"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Mar 24 13:54:33 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:33 2011 +0000"
      },
      "message": "dm mpath: allow table load with no priority groups\n\nThis patch adjusts the multipath target to allow a table with both 0\npriority groups and 0 for the initial priority group number.\n\nIf any mpath device is held open when all paths in the last priority\ngroup have failed, userspace multipathd will attempt to reload the\nassociated DM table to reflect the fact that the device no longer has\nany priority groups.  But the reload attempt always failed because the\nmultipath target did not allow 0 priority groups.\n\nAll multipath target messages related to priority group (enable_group,\ndisable_group, switch_group) will handle a priority group of 0 (will\ncause error).\n\nWhen reloading a multipath table with 0 priority groups, userspace\nmultipathd must be updated to specify an initial priority group number\nof 0 (rather than 1).\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Babu Moger \u003cbabu.moger@lsi.com\u003e\nAcked-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "19040c0bc8efcb767221d8ef7bb9c32ff0586179",
      "tree": "49df397ce008ecc7f2e19caadb86c1c7c7fbcbf3",
      "parents": [
        "f868120549fc1664b2c451d4b9882a363928c698"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Mar 24 13:54:31 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:31 2011 +0000"
      },
      "message": "dm mpath: fail message ioctl if specified path is not valid\n\nFail the reinstate_path and fail_path message ioctl if the specified\npath is not valid.\n\nThe message ioctl would succeed for the \u0027reinistate_path\u0027 and\n\u0027fail_path\u0027 messages even if action was not taken because the\nspecified device was not a valid path of the multipath device.\n\nBefore, when /dev/vdb is not a path of mpathb:\n$ dmsetup message mpathb 0 reinstate_path /dev/vdb\n$ echo $?\n0\n\nAfter:\n$ dmsetup message mpathb 0 reinstate_path /dev/vdb\ndevice-mapper: message ioctl failed: Invalid argument\nCommand failed\n$ echo $?\n1\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f868120549fc1664b2c451d4b9882a363928c698",
      "tree": "20d95a8f3b9fac1348bd42a5ff1e3f9d43918b93",
      "parents": [
        "6bb43b5d1f54fb44c0408d86d5e71e4405a3ebe1"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Mar 24 13:54:30 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:30 2011 +0000"
      },
      "message": "dm ioctl: add flag to wipe buffers for secure data\n\nAdd DM_SECURE_DATA_FLAG which userspace can use to ensure\nthat all buffers allocated for dm-ioctl are wiped\nimmediately after use.\n\nThe user buffer is wiped as well (we do not want to keep\nand return sensitive data back to userspace if the flag is set).\n\nWiping is useful for cryptsetup to ensure that the key\nis present in memory only in defined places and only\nfor the time needed.\n\n(For crypt, key can be present in table during load or table\nstatus, wait and message commands).\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6bb43b5d1f54fb44c0408d86d5e71e4405a3ebe1",
      "tree": "f32946848c23dda73b72178c292567a4e06176b5",
      "parents": [
        "de8be5ac70f50a2340f24fd769a1aafa5a51ae34"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Mar 24 13:54:28 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:28 2011 +0000"
      },
      "message": "dm ioctl: prepare for crypt key wiping\n\nPrepare code for implementing buffer wipe flag.\nNo functional change in this patch.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "de8be5ac70f50a2340f24fd769a1aafa5a51ae34",
      "tree": "1f4b7a5cddd6c6a78412a2dbd9ec071f00a41d1d",
      "parents": [
        "3407ef5262b55ca5d7139d2b555ef792fe531eec"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Mar 24 13:54:27 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:27 2011 +0000"
      },
      "message": "dm crypt: wipe keys string immediately after key is set\n\nAlways wipe the original copy of the key after processing it\nin crypt_set_key().\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3407ef5262b55ca5d7139d2b555ef792fe531eec",
      "tree": "fb5e083851c636e515095bb3eb90325f4b175129",
      "parents": [
        "024d37e95ec4a7ccc256973ab2feab01f4fbdd2d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Mar 24 13:54:24 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:54:24 2011 +0000"
      },
      "message": "dm: add flakey target\n\nThis target is the same as the linear target except that it returns I/O\nerrors periodically.  It\u0027s been found useful in simulating failing\ndevices for testing purposes.\n\nI needed a dm target to do some failure testing on btrfs\u0027s raid code, and\nMike pointed me at this.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "024d37e95ec4a7ccc256973ab2feab01f4fbdd2d",
      "tree": "f81ce3ac56c911577942b8404ed45a980c321621",
      "parents": [
        "4bbba111d94781d34081c37856bbc5eb33f6c72a"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Mar 24 13:52:14 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Mar 24 13:52:14 2011 +0000"
      },
      "message": "dm: fix opening log and cow devices for read only tables\n\nIf a table is read-only, also open any log and cow devices it uses read-only.\n\nPreviously, even read-only devices were opened read-write internally.\nAfter patch 75f1dc0d076d1c1168f2115f1941ea627d38bd5a\n  block: check bdev_read_only() from blkdev_get()\nwas applied, loading such tables began to fail.  The patch\nwas reverted by e51900f7d38cbcfb481d84567fd92540e7e1d23a\n  block: revert block_dev read-only check\nbut this patch fixes this part of the code to work with the original patch.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "bb5cda3d706f44e5696533c9a7353c458f2871e0",
      "tree": "ad720028d76caf0f6ce69fd7f52086972177757b",
      "parents": [
        "6b33aff368def952be78102c0935ebd219f9a748"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:20 2011 -0700"
      },
      "message": "dm: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Alasdair Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b33aff368def952be78102c0935ebd219f9a748",
      "tree": "d8f06ac51fb13bf34d1fc3791db02761c8662a22",
      "parents": [
        "3cdc7125c364b2baad8aba69c058b26d3dca5f52"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:20 2011 -0700"
      },
      "message": "md: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e9bb8808ac11094d711d20d580e7b45a4992d0c",
      "tree": "d0e228b619664b7f507e37e5eba4a5ebeef103a0",
      "parents": [
        "5e84ea3a9c662dc2d7a48703a4468fad954a3b7f"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Mar 22 08:35:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Mar 22 08:35:35 2011 +0100"
      },
      "message": "block: fix non-atomic access to genhd inflight structures\n\nAfter the stack plugging introduction, these are called lockless.\nEnsure that the counters are updated atomically.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c55d267de274d308927b60c3e740c1a826832317",
      "tree": "21b53a8c725d9f9650f60d94b349459d5b8dae10",
      "parents": [
        "61ef46fd45c3c62dc7c880a45dd2aa841b9af8fb",
        "bc898c97f7ba24def788d9f80786cf028a197122"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 17 17:54:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 17 17:54:40 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (170 commits)\n  [SCSI] scsi_dh_rdac: Add MD36xxf into device list\n  [SCSI] scsi_debug: add consecutive medium errors\n  [SCSI] libsas: fix ata list corruption issue\n  [SCSI] hpsa: export resettable host attribute\n  [SCSI] hpsa: move device attributes to avoid forward declarations\n  [SCSI] scsi_debug: Logical Block Provisioning (SBC3r26)\n  [SCSI] sd: Logical Block Provisioning update\n  [SCSI] Include protection operation in SCSI command trace\n  [SCSI] hpsa: fix incorrect PCI IDs and add two new ones (2nd try)\n  [SCSI] target: Fix volume size misreporting for volumes \u003e 2TB\n  [SCSI] bnx2fc: Broadcom FCoE offload driver\n  [SCSI] fcoe: fix broken fcoe interface reset\n  [SCSI] fcoe: precedence bug in fcoe_filter_frames()\n  [SCSI] libfcoe: Remove stale fcoe-netdev entries\n  [SCSI] libfcoe: Move FCOE_MTU definition from fcoe.h to libfcoe.h\n  [SCSI] libfc: introduce __fc_fill_fc_hdr that accepts fc_hdr as an argument\n  [SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs\n  [SCSI] Revert \"[SCSI] libfc: fix exchange being deleted when the abort itself is timed out\"\n  [SCSI] libfc: Fixing a memory leak when destroying an interface\n  [SCSI] megaraid_sas: Version and Changelog update\n  ...\n\nFix up trivial conflicts due to whitespace differences in\ndrivers/scsi/libsas/{sas_ata.c,sas_scsi_host.c}\n"
    },
    {
      "commit": "a91a2785b200864aef2270ed6a3babac7a253a20",
      "tree": "3d21d7ef82ddabbdbfb74499d68a73f15adc819f",
      "parents": [
        "82f04ab47e1d94d78503591a7460b2cad9601ede"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Mar 17 11:11:05 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 17 11:11:05 2011 +0100"
      },
      "message": "block: Require subsystems to explicitly allocate bio_set integrity mempool\n\nMD and DM create a new bio_set for every metadevice. Each bio_set has an\nintegrity mempool attached regardless of whether the metadevice is\ncapable of passing integrity metadata. This is a waste of memory.\n\nInstead we defer the allocation decision to MD and DM since we know at\nmetadevice creation time whether integrity passthrough is needed or not.\n\nAutomatic integrity mempool allocation can then be removed from\nbioset_create() and we make an explicit integrity allocation for the\nfs_bio_set.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nReported-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnizer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7a6362800cb7d1d618a697a650c7aaed3eb39320",
      "tree": "087f9bc6c13ef1fad4b392c5cf9325cd28fa8523",
      "parents": [
        "6445ced8670f37cfc2c5e24a9de9b413dbfc788d",
        "ceda86a108671294052cbf51660097b6534672f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 16:29:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 16:29:25 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1480 commits)\n  bonding: enable netpoll without checking link status\n  xfrm: Refcount destination entry on xfrm_lookup\n  net: introduce rx_handler results and logic around that\n  bonding: get rid of IFF_SLAVE_INACTIVE netdev-\u003epriv_flag\n  bonding: wrap slave state work\n  net: get rid of multiple bond-related netdevice-\u003epriv_flags\n  bonding: register slave pointer for rx_handler\n  be2net: Bump up the version number\n  be2net: Copyright notice change. Update to Emulex instead of ServerEngines\n  e1000e: fix kconfig for crc32 dependency\n  netfilter ebtables: fix xt_AUDIT to work with ebtables\n  xen network backend driver\n  bonding: Improve syslog message at device creation time\n  bonding: Call netif_carrier_off after register_netdevice\n  bonding: Incorrect TX queue offset\n  net_sched: fix ip_tos2prio\n  xfrm: fix __xfrm_route_forward()\n  be2net: Fix UDP packet detected status in RX compl\n  Phonet: fix aligned-mode pipe socket buffer header reserve\n  netxen: support for GbE port settings\n  ...\n\nFix up conflicts in drivers/staging/brcm80211/brcmsmac/wl_mac80211.c\nwith the staging updates.\n"
    },
    {
      "commit": "bd2895eeade5f11f3e5906283c630bbdb4b57454",
      "tree": "4d98f4fcd80c7d062afce28823d08aee53e66f82",
      "parents": [
        "016aa2ed1cc9cf704cf76d8df07751b6daa9750f",
        "24d51add7438f9696a7205927bf9de3c5c787a58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix build failure introduced by s/freezeable/freezable/\n  workqueue: add system_freezeable_wq\n  rds/ib: use system_wq instead of rds_ib_fmr_wq\n  net/9p: replace p9_poll_task with a work\n  net/9p: use system_wq instead of p9_mux_wq\n  xfs: convert to alloc_workqueue()\n  reiserfs: make commit_wq use the default concurrency level\n  ocfs2: use system_wq instead of ocfs2_quota_wq\n  ext4: convert to alloc_workqueue()\n  scsi/scsi_tgt_lib: scsi_tgtd isn\u0027t used in memory reclaim path\n  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()\n  misc/iwmc3200top: use system_wq instead of dedicated workqueues\n  i2o: use alloc_workqueue() instead of create_workqueue()\n  acpi: kacpi*_wq don\u0027t need WQ_MEM_RECLAIM\n  fs/aio: aio_wq isn\u0027t used in memory reclaim path\n  input/tps6507x-ts: use system_wq instead of dedicated workqueue\n  cpufreq: use system_wq instead of dedicated workqueues\n  wireless/ipw2x00: use system_wq instead of dedicated workqueues\n  arm/omap: use system_wq in mailbox\n  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0a0e9ae1bd788bc19adc4d4ae08c98b233697402",
      "tree": "13825eeb5bbeae27d66e95f12168eff4b60701ab",
      "parents": [
        "01a16b21d6adf992aa863186c3c4e561a57c1714",
        "b65a0e0c84cf489bfa00d6aa6c48abc5a237100f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 21:27:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 21:27:42 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x.h\n"
    },
    {
      "commit": "01a16b21d6adf992aa863186c3c4e561a57c1714",
      "tree": "a3b1c81e5a5e6a0e9069e4d3a15576741ed34776",
      "parents": [
        "63f97425166a1a16279c1a5720e9dfcb2c12ad1b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 03 13:32:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 13:32:07 2011 -0800"
      },
      "message": "netlink: kill eff_cap from struct netlink_skb_parms\n\nNetlink message processing in the kernel is synchronous these days,\ncapabilities can be checked directly in security_netlink_recv() from\nthe current process.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\n[chrisw: update to include pohmelfs and uvesafb]\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f0b4f7e2f29af678bd9af43422c537dcb6008603",
      "tree": "dfc2aa18bbf8411a499ef8117a5e15490eb44728",
      "parents": [
        "93b270f76e7ef3b81001576860c2701931cdc78b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:26:41 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:26:41 2011 +1100"
      },
      "message": "md: Fix - again - partition detection when array becomes active\n\nRevert\n    b821eaa572fd737faaf6928ba046e571526c36c6\nand\n    f3b99be19ded511a1bf05a148276239d9f13eefa\n\nWhen I wrote the first of these I had a wrong idea about the\nlifetime of \u0027struct block_device\u0027.  It can disappear at any time that\nthe block device is not open if it falls out of the inode cache.\n\nSo relying on the \u0027size\u0027 recorded with it to detect when the\ndevice size has changed and so we need to revalidate, is wrong.\n\nRather, we really do need the \u0027changed\u0027 attribute stored directly in\nthe mddev and set/tested as appropriate.\n\nWithout this patch, a sequence of:\n   mknod / open / close / unlink\n\n(which can cause a block_device to be created and then destroyed)\nwill result in a rescan of the partition table and consequence removal\nand addition of partitions.\nSeveral of these in a row can get udev racing to create and unlink and\nother code can get confused.\n\nWith the patch, the rescan is only performed when needed and so there\nare no races.\n\nThis is suitable for any stable kernel from 2.6.35.\n\nReported-by: \"Wojcik, Krzysztof\" \u003ckrzysztof.wojcik@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81",
      "tree": "8de75c837b55874cc8a81a29bdedbc62668d4481",
      "parents": [
        "4149efb22da66e326fc48baf80d628834509f7f0",
        "6f576d57f1fa0d6026b495d8746d56d949989161"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.39\n"
    },
    {
      "commit": "da9cf5050a2e3dbc3cf26a8d908482eb4485ed49",
      "tree": "d5e7ea4ef419d07d294e88b47a4aaf2676a605eb",
      "parents": [
        "8f5f02c460b7ca74ce55ce126ce0c1e58a3f923d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Feb 21 18:25:57 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Feb 21 18:25:57 2011 +1100"
      },
      "message": "md: avoid spinlock problem in blk_throtl_exit\n\nblk_throtl_exit assumes that -\u003equeue_lock still exists,\nso make sure that it does.\nTo do this, we stop redirecting -\u003equeue_lock to conf-\u003edevice_lock\nand leave it pointing where it is initialised - __queue_lock.\n\nAs the blk_plug functions check the -\u003equeue_lock is held, we now\ntake that spin_lock explicitly around the plug functions.  We don\u0027t\nneed the locking, just the warning removal.\n\nThis is needed for any kernel with the blk_throtl code, which is\nwhich is 2.6.37 and later.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8f5f02c460b7ca74ce55ce126ce0c1e58a3f923d",
      "tree": "de4f933fe250bd2ba71727f535432a82ef68883b",
      "parents": [
        "cbe6ef1d2622e08e272600b3cb6040bed60f0450"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 16 13:58:51 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 16 13:58:51 2011 +1100"
      },
      "message": "md: correctly handle probe of an \u0027mdp\u0027 device.\n\n\u0027mdp\u0027 devices are md devices with preallocated device numbers\nfor partitions. As such it is possible to mknod and open a partition\nbefore opening the whole device.\n\nthis causes  md_probe() to be called with a device number of a\npartition, which in-turn calls mddev_find with such a number.\n\nHowever mddev_find expects the number of a \u0027whole device\u0027 and\ndoes the wrong thing with partition numbers.\n\nSo add code to mddev_find to remove the \u0027partition\u0027 part of\na device number and just work with the \u0027whole device\u0027.\n\nThis patch addresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d28652\n\nReported-by: hkmaly@bigfoot.com\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "cbe6ef1d2622e08e272600b3cb6040bed60f0450",
      "tree": "03d1ae0fe73404a3bd7850d89c415f3412977693",
      "parents": [
        "f7bee80945155ad0326916486dabc38428c6cdef"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 16 13:58:38 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 16 13:58:38 2011 +1100"
      },
      "message": "md: don\u0027t set_capacity before array is active.\n\nIf the desired size of an array is set (via sysfs) before the array is\nactive (which is the normal sequence), we currrently call set_capacity\nimmediately.\nThis means that a subsequent \u0027open\u0027 (as can be caused by some\nudev-triggers program) will notice the new size and try to probe for\npartitions.  However as the array isn\u0027t quite ready yet the read will\nfail.  Then when the array is read, as the size doesn\u0027t change again\nwe don\u0027t try to re-probe.\n\nSo when setting array size via sysfs, only call set_capacity if the\narray is already active.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f7bee80945155ad0326916486dabc38428c6cdef",
      "tree": "adf054c298371d181aa2b3885425bcb766f3deb6",
      "parents": [
        "02214dc5461c36da26a34014cab4e1bb484edba2"
      ],
      "author": {
        "name": "Krzysztof Wojcik",
        "email": "krzysztof.wojcik@intel.com",
        "time": "Mon Feb 14 10:01:41 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Feb 14 10:01:41 2011 +1100"
      },
      "message": "md: Fix raid1-\u003eraid0 takeover\n\nTakeover raid1-\u003eraid0 not succeded. Kernel message is shown:\n\"md/raid0:md126: too few disks (1 of 2) - aborting!\"\n\nProblem was that we weren\u0027t updating -\u003eraid_disks for that\ntakeover, unlike all the others.\n\nSigned-off-by: Krzysztof Wojcik \u003ckrzysztof.wojcik@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "751b2a7d623ead9e55f751a6087efeab454b5659",
      "tree": "d38c5214f10c1a41e809cd20e4e7a008810f1d75",
      "parents": [
        "63583cca745f440167bf27877182dc13e19d4bcf"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Tue Jan 18 10:13:12 2011 +0100"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sat Feb 12 10:33:29 2011 -0600"
      },
      "message": "[SCSI] dm mpath: propagate target errors immediately\n\nDM now has more information about the nature of the underlying storage\nfailure.  Path failure is avoided if a request failed due to a target\nerror.  Instead the target error is immediately passed up the stack.\n\nDiscard requests that fail due to non-target errors may now be retried.\n\nErrors restricted to the path will be retried or returned if no\npaths are available, irregarding the no_path_retry setting.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "02214dc5461c36da26a34014cab4e1bb484edba2",
      "tree": "32137bdf12144af5ff6c946838e1bfbf3b2bc0f2",
      "parents": [
        "e91ece5590b3c728624ab57043fc7a05069c604a"
      ],
      "author": {
        "name": "Krzysztof Wojcik",
        "email": "krzysztof.wojcik@intel.com",
        "time": "Fri Feb 04 14:18:26 2011 +0100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 08 11:49:02 2011 +1100"
      },
      "message": "FIX: md: process hangs at wait_barrier after 0-\u003e10 takeover\n\nFollowing symptoms were observed:\n1. After raid0-\u003eraid10 takeover operation we have array with 2\nmissing disks.\nWhen we add disk for rebuild, recovery process starts as expected\nbut it does not finish- it stops at about 90%, md126_resync process\nhangs in \"D\" state.\n2. Similar behavior is when we have mounted raid0 array and we\nexecute takeover to raid10. After this when we try to unmount array-\nit causes process umount hangs in \"D\"\n\nIn scenarios above processes hang at the same function- wait_barrier\nin raid10.c.\nProcess waits in macro \"wait_event_lock_irq\" until the\n\"!conf-\u003ebarrier\" condition will be true.\nIn scenarios above it never happens.\n\nReason was that at the end of level_store, after calling pers-\u003erun,\nwe call mddev_resume. This calls pers-\u003equiesce(mddev, 0) with\nRAID10, that calls lower_barrier.\nHowever raise_barrier hadn\u0027t been called on that \u0027conf\u0027 yet,\nso conf-\u003ebarrier becomes negative, which is bad.\n\nThis patch introduces setting conf-\u003ebarrier\u003d1 after takeover\noperation. It prevents to become barrier negative after call\nlower_barrier().\n\nSigned-off-by: Krzysztof Wojcik \u003ckrzysztof.wojcik@intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e91ece5590b3c728624ab57043fc7a05069c604a",
      "tree": "4c5fd4ad374caf5bd9c5f575b0a228b5cdf2f191",
      "parents": [
        "c6751b2bde477f56ceef67aa1d298ce44e8e2e23"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 07 19:21:48 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Feb 08 09:53:28 2011 +1100"
      },
      "message": "md_make_request: don\u0027t touch the bio after calling make_request\n\nmd_make_request was calling bio_sectors() for part_stat_add\nafter it was calling the make_request function.  This is\nbad because the make_request function can free the bio and\nbecause the bi_size field can change around.\n\nThe fix here was suggested by Jens Axboe.  It saves the\nsector count before the make_request call.  I hit this\nwith CONFIG_DEBUG_PAGEALLOC turned on while trying to break\nhis pretty fusionio card.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c6751b2bde477f56ceef67aa1d298ce44e8e2e23",
      "tree": "59916ec74802396ec4b3f871d27232550848bc8c",
      "parents": [
        "7281f8129c362436237b82c8c026494dd36479dc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 02 11:57:13 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 02 11:57:13 2011 +1100"
      },
      "message": "md: Don\u0027t allow slot_store while resync/recovery is happening.\n\nActivating a spare in an array while resync/recovery is already\nhappening can lead the that spare being marked in-sync when it isn\u0027t\nreally.\nSo don\u0027t allow the \u0027slot\u0027 to be set (this activating the device)\nwhile resync/recovery is happening.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7281f8129c362436237b82c8c026494dd36479dc",
      "tree": "c12196b42c807d4ee80d5f6e1657f31fa3ea4d7b",
      "parents": [
        "a8c42c7f476b5bb39bb3a5b32d5473b9a46cadb9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 14:30:27 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 14:30:27 2011 +1100"
      },
      "message": "md: don\u0027t clear curr_resync_completed at end of resync.\n\nThere is no need to set this to zero at this point.  It will be\nset to zero by remove_and_add_spares or at the start of\nmd_do_sync at the latest.\nAnd setting it to zero before MD_RECOVERY_RUNNING is cleared can\nmake a \u0027zero\u0027 appear briefly in the \u0027sync_completed\u0027 sysfs attribute\njust as resync is finishing.\n\nSo simply remove this setting to zero.\n\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a8c42c7f476b5bb39bb3a5b32d5473b9a46cadb9",
      "tree": "59b82042476e6b92ee293570d30a2580dba56d09",
      "parents": [
        "fc3a08b85b7a4f6c1069e5f71f6ad40d925ff55b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 13:47:13 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 13:47:13 2011 +1100"
      },
      "message": "md: Don\u0027t use remove_and_add_spares to remove failed devices from a read-only array\n\nremove_and_add_spares is called in two places where the needs really\nare very different.\nremove_and_add_spares should not be called on an array which is about\nto be reshaped as some extra devices might have been manually added\nand that would remove them.  However if the array is \u0027read-auto\u0027,\nthat will currently happen, which is bad.\n\nSo in the \u0027ro !\u003d 0\u0027 case don\u0027t call remove_and_add_spares but simply\nremove the failed devices as the comment suggests is needed.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fc3a08b85b7a4f6c1069e5f71f6ad40d925ff55b",
      "tree": "1d23e67decd38615a38a50769c264f3a2636d582",
      "parents": [
        "f21e9ff7f77d41ceca4e1e5ee5a4efa5ad7a5e40"
      ],
      "author": {
        "name": "Krzysztof Wojcik",
        "email": "krzysztof.wojcik@intel.com",
        "time": "Mon Jan 31 13:47:13 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 13:47:13 2011 +1100"
      },
      "message": "Add raid1-\u003eraid0 takeover support\n\nThis patch introduces raid 1 to raid0 takeover operation\nin kernel space.\n\nSigned-off-by: Krzysztof Wojcik \u003ckrzysztof.wojcik@intel.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@nbeee.brown\u003e\n"
    },
    {
      "commit": "f21e9ff7f77d41ceca4e1e5ee5a4efa5ad7a5e40",
      "tree": "c6bf9c0457ae891505983c1493bf15856e815c5b",
      "parents": [
        "50da08409654e036c4c964a473567a61a654cb83"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 12:10:09 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 12:10:09 2011 +1100"
      },
      "message": "md: Remove the AllReserved flag for component devices.\n\nThis flag is not needed and is used badly.\n\nDevices that are included in a native-metadata array are reserved\nexclusively for that array - and currently have AllReserved set.\nThey all are bd_claimed for the rdev and so cannot be shared.\n\nDevices that are included in external-metadata arrays can be shared\namong multiple arrays - providing there is no overlap.\nThese are bd_claimed for md in general - not for a particular rdev.\n\nWhen changing the amount of a device that is used in an array we need\nto check for overlap.  This currently includes a check on AllReserved\nSo even without overlap, sharing with an AllReserved device is not\nallowed.\nHowever the bd_claim usage already precludes sharing with these\ndevices, so the test on AllReserved is not needed.  And in fact it is\nwrong.\n\nAs this is the only use of AllReserved, simply remove all usage and\ndefinition of AllReserved.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "50da08409654e036c4c964a473567a61a654cb83",
      "tree": "18a4c5edf23ec5aaf8872d9639970a99c7f16d8e",
      "parents": [
        "469518a3455c79619e9231aeffeffa2e2989f738"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:43 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:43 2011 +1100"
      },
      "message": "md: don\u0027t abort checking spares as soon as one cannot be added.\n\nAs spares can be added manually before a reshape starts, we need to\nfind them all to mark some of them as in_sync.\n\nPreviously we would abort looking for spares when we found an\nunallocated spare what could not be added to the array (implying there\nwas no room for new spares).  However already-added spares could be\nlater in the list, so we need to keep searching.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "469518a3455c79619e9231aeffeffa2e2989f738",
      "tree": "ae92280e8be9df25fd20fea87efcbe72bd855ae9",
      "parents": [
        "87a8dec91e15954f0cf86be6c21741d991d83621"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:43 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:43 2011 +1100"
      },
      "message": "md: fix the test for finding spares in raid5_start_reshape.\n\nAs spares can be added to the array before the reshape is started,\nwe need to find and count them when checking there are enough.\nThe array could have been degraded, so we need to check all devices,\nno just those out side of the range of devices in the array before\nthe reshape.\n\nSo instead of checking the index, check the In_sync flag as that\nreliably tells if the device is a spare or this purpose.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "87a8dec91e15954f0cf86be6c21741d991d83621",
      "tree": "6719ef774c0e1a719b0365eae457c8ba4f130c70",
      "parents": [
        "de171cb9a52598cc023adceafc6c166112401386"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:43 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:43 2011 +1100"
      },
      "message": "md: simplify some \u0027if\u0027 conditionals in raid5_start_reshape.\n\nThere are two consecutive \u0027if\u0027 statements.\n\n if (mddev-\u003edelta_disks \u003e\u003d 0)\n      ....\n if (mddev-\u003edelta_disks \u003e 0)\n\nThe code in the second is equally valid if delta_disks \u003d\u003d 0, and these\ntwo statements are the only place that \u0027added_devices\u0027 is used.\n\nSo make them a single if statement, make added_devices a local\nvariable, and re-indent it all.\n\nNo functional change.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "de171cb9a52598cc023adceafc6c166112401386",
      "tree": "56fc899c45b538dedba0fc139e3213a0f47f9a59",
      "parents": [
        "1f0324caefd39985e9fe052fac97da31694db31e"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:42 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jan 31 11:57:42 2011 +1100"
      },
      "message": "md: revert change to raid_disks on failure.\n\nIf we try to update_raid_disks and it fails, we should put\n\u0027delta_disks\u0027 back to zero.  This is important because some code,\nsuch as slot_store, assumes that delta_disks has been validated.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ada609ee2ac2e03bd8abb07f9b3e92cd2e650f19",
      "tree": "ccc1051a961b12448420428b5a400a6333d3e821",
      "parents": [
        "c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 25 14:35:54 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 25 14:35:54 2011 +0100"
      },
      "message": "workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n\nWQ_RESCUER is now an internal flag and should only be used in the\nworkqueue implementation proper.  Use WQ_MEM_RECLAIM instead.\n\nThis doesn\u0027t introduce any functional difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: dm-devel@redhat.com\nCc: Neil Brown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "49731baa41df404c2c3f44555869ab387363af43",
      "tree": "5d3476368fa546aebb1c223e9cf1bab5ad80f698",
      "parents": [
        "c553f8e335c00a7cff3ab3f13e793b13d3f2207f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 14 18:43:57 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Jan 14 18:44:22 2011 +0100"
      },
      "message": "block: restore multiple bd_link_disk_holder() support\n\nCommit e09b457b (block: simplify holder symlink handling) incorrectly\nassumed that there is only one link at maximum.  dm may use multiple\nlinks and expects block layer to track reference count for each link,\nwhich is different from and unrelated to the exclusive device holder\nidentified by @holder when the device is opened.\n\nRemove the single holder assumption and automatic removal of the link\nand revive the per-link reference count tracking.  The code\nessentially behaves the same as before commit e09b457b sans the\nunnecessary kobject reference count dancing.\n\nWhile at it, note that this facility should not be used by anyone else\nthan the current ones.  Sysfs symlinks shouldn\u0027t be abused like this\nand the whole thing doesn\u0027t belong in the block layer at all.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-raid@vger.kernel.org\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f6bcfd94c0a97c11ce9197ade93a08bc8af6e057",
      "tree": "83d867565b4f2a7627b3288f9e000eaf2b217be9",
      "parents": [
        "509e4aef44eb10e4aef1f81c3c3ff1214671503b",
        "9d09e663d5502c46f2d9481c04c1087e1c2da698"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:47 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (32 commits)\n  dm: raid456 basic support\n  dm: per target unplug callback support\n  dm: introduce target callbacks and congestion callback\n  dm mpath: delay activate_path retry on SCSI_DH_RETRY\n  dm: remove superfluous irq disablement in dm_request_fn\n  dm log: use PTR_ERR value instead of ENOMEM\n  dm snapshot: avoid storing private suspended state\n  dm snapshot: persistent make metadata_wq multithreaded\n  dm: use non reentrant workqueues if equivalent\n  dm: convert workqueues to alloc_ordered\n  dm stripe: switch from local workqueue to system_wq\n  dm: dont use flush_scheduled_work\n  dm snapshot: remove unused dm_snapshot queued_bios_work\n  dm ioctl: suppress needless warning messages\n  dm crypt: add loop aes iv generator\n  dm crypt: add multi key capability\n  dm crypt: add post iv call to iv generator\n  dm crypt: use io thread for reads only if mempool exhausted\n  dm crypt: scale to multiple cpus\n  dm crypt: simplify compatible table output\n  ...\n"
    },
    {
      "commit": "509e4aef44eb10e4aef1f81c3c3ff1214671503b",
      "tree": "b90daecbc3d05787b0dd141e524b67d8579a6dfd",
      "parents": [
        "375b6f5a40a3d8373561a3dbeed440a845e6d379",
        "bf2cb0dab8c97f00a71875d9b13dbac17a2f47ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:20 2011 -0800"
      },
      "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: Fix removal of extra drives when converting RAID6 to RAID5\n  md: range check slot number when manually adding a spare.\n  md/raid5: handle manually-added spares in start_reshape.\n  md: fix sync_completed reporting for very large drives (\u003e2TB)\n  md: allow suspend_lo and suspend_hi to decrease as well as increase.\n  md: Don\u0027t let implementation detail of curr_resync leak out through sysfs.\n  md: separate meta and data devs\n  md-new-param-to_sync_page_io\n  md-new-param-to-calc_dev_sboffset\n  md: Be more careful about clearing flags bit in -\u003erecovery\n  md: md_stop_writes requires mddev_lock.\n  md/raid5: use sysfs_notify_dirent_safe to avoid NULL pointer\n  md: Ensure no IO request to get md device before it is properly initialised.\n  md: Fix single printks with multiple KERN_\u003clevel\u003es\n  md: fix regression resulting in delays in clearing bits in a bitmap\n  md: fix regression with re-adding devices to arrays with no metadata\n"
    },
    {
      "commit": "bf2cb0dab8c97f00a71875d9b13dbac17a2f47ca",
      "tree": "68587eaff5c7cb85628c1f68aecb19f2a18c8f6e",
      "parents": [
        "ba1b41b6b4e30cb66ae2775faadea05cae3ce61c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: Fix removal of extra drives when converting RAID6 to RAID5\n\nWhen a RAID6 is converted to a RAID5, the extra drive should\nbe discarded.  However it isn\u0027t due to a typo in a comparison.\n\nThis bug was introduced in commit e93f68a1fc6 in 2.6.35-rc4\nand is suitable for any -stable since than.\n\nAs the extra drive is not removed, the \u0027degraded\u0027 counter is wrong and\nso the RAID5 will not respond correctly to a subsequent failure.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ba1b41b6b4e30cb66ae2775faadea05cae3ce61c",
      "tree": "02da80f72095418dd1a08661f59c24607029a8e7",
      "parents": [
        "1a940fcee31ec6c18c2f24dbdad31d54e4c35048"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: range check slot number when manually adding a spare.\n\nWhen adding a spare to an active array, we should check the slot\nnumber, but allow it to be larger than raid_disks if a reshape\nis being prepared.\n\nApply the same test when adding a device to an\narray-under-construction.  It already had most of the test in place,\nbut not quite all.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1a940fcee31ec6c18c2f24dbdad31d54e4c35048",
      "tree": "73de19d505bb0483462eb1445a86a848e5506478",
      "parents": [
        "13ae864bc86ff65547ffe7e966b6433a0d0edb8a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md/raid5: handle manually-added spares in start_reshape.\n\nIt is possible to manually add spares to specific slots before\nstarting a reshape.\nraid5_start_reshape should recognised this possibility and include\nit in the accounting.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "13ae864bc86ff65547ffe7e966b6433a0d0edb8a",
      "tree": "6e5ca3a6736b75fa0db8415c1e3a2506af6ab9cc",
      "parents": [
        "23ddff3792f61193695114c68d6ebd57e974c4f8"
      ],
      "author": {
        "name": "Rémi Rérolle",
        "email": "rrerolle@lacie.com",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: fix sync_completed reporting for very large drives (\u003e2TB)\n\nThe values exported in the sync_completed file are unsigned long, which\noverflows with very large drives, resulting in wrong values reported.\n\nSince sync_completed uses sectors as unit, we\u0027ll start getting wrong\nvalues with components larger than 2TB.\n\nThis patch simply replaces the use of unsigned long by unsigned long long.\n\nSigned-off-by: Rémi Rérolle \u003crrerolle@lacie.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "23ddff3792f61193695114c68d6ebd57e974c4f8",
      "tree": "5b16efbc900648c8ef402a41cb308759a2706c61",
      "parents": [
        "75d3da43cb74d2e5fb87816dbfecb839cd97c7f4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: allow suspend_lo and suspend_hi to decrease as well as increase.\n\nThe sysfs attributes \u0027suspend_lo\u0027 and \u0027suspend_hi\u0027 describe a region\nto which read/writes are suspended so that the under lying data can be\nmanipulated without user-space noticing.\nCurrently the window they describe can only move forwards along the\ndevice.  However this is an unnecessary restriction which will cause\nproblems with planned developments.\nSo relax this restriction and allow these endpoints to move\narbitrarily.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "75d3da43cb74d2e5fb87816dbfecb839cd97c7f4",
      "tree": "27074aceb801ada315329591f32c938b36150ed9",
      "parents": [
        "a6ff7e089c7fca813c956ccbed824087e89a3a49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: Don\u0027t let implementation detail of curr_resync leak out through sysfs.\n\nmddev-\u003ecurr_resync has artificial values of \u00271\u0027 and \u00272\u0027 which are used\nby the code which ensures only one resync is happening at a time on\nany given device.\n\nThese values are internal and should never be exposed to user-space\n(except when translated appropriately as in the \u0027pending\u0027 status in\n/proc/mdstat).\n\nUnfortunately they are as -\u003ecurr_resync is assigned to\n-\u003ecurr_resync_completed and that value is directly visible through\nsysfs.\n\nSo change the assignments to -\u003ecurr_resync_completed to get the same\nvalued from elsewhere in a form that doesn\u0027t have the magic \u00271\u0027 or \u00272\u0027\nvalues.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a6ff7e089c7fca813c956ccbed824087e89a3a49",
      "tree": "6537f72a2431c30601736676e9b1f89a7f1fe52e",
      "parents": [
        "ccebd4c4159462c96397ae9af9c667bb394d7b70"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: separate meta and data devs\n\nAllow the metadata to be on a separate device from the\ndata.\n\nThis doesn\u0027t mean the data and metadata will by on separate\nphysical devices - it simply gives device-mapper and userspace\ntools more flexibility.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ccebd4c4159462c96397ae9af9c667bb394d7b70",
      "tree": "04554f0e7607d906c6b09f31a995fca0dd40c5b5",
      "parents": [
        "57b2caa394393f8870ed41bdcc38a7542593018f"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md-new-param-to_sync_page_io\n\nAdd new parameter to \u0027sync_page_io\u0027.\n\nThe new parameter allows us to distinguish between metadata and data\noperations.  This becomes important later when we add the ability to\nuse separate devices for data and metadata.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\n"
    },
    {
      "commit": "57b2caa394393f8870ed41bdcc38a7542593018f",
      "tree": "22579497603304e9694986a4cac2cd360c993fa9",
      "parents": [
        "7ebc0be7fff4146e87b4078f054977b72998abd3"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md-new-param-to-calc_dev_sboffset\n\nWhen we allow for separate devices for data and metadata\nin a later patch, we will need to be able to calculate\nthe superblock offset based on more than the bdev.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\n"
    },
    {
      "commit": "7ebc0be7fff4146e87b4078f054977b72998abd3",
      "tree": "f5b5b40674ec4e221e77eb1f9e4f36138f75df3c",
      "parents": [
        "defad61a5b16352d3e22a04d4c930a5b5a7fd1f0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: Be more careful about clearing flags bit in -\u003erecovery\n\nSetting -\u003erecovery to 0 is generally not a good idea as it could clear\nbits that shouldn\u0027t be cleared.  In particular, MD_RECOVERY_FROZEN\nshould only be cleared on explicit request from user-space.\n\nSo when we need to clear things, just clear the bits that need\nclearing.\n\nAs there are a few different places which reap a resync process - and\nsome do an incomplte job - factor out the code for doing the from\nmd_check_recovery and call that function instead of open coding part\nof it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReported-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\n"
    },
    {
      "commit": "defad61a5b16352d3e22a04d4c930a5b5a7fd1f0",
      "tree": "c353bd036c12011d0eee7f7924c230888fd34b0a",
      "parents": [
        "43c73ca43b3e03bb228ff9350b6b44d0e560f262"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: md_stop_writes requires mddev_lock.\n\nAs md_stop_writes manipulates the sync_thread and calls md_update_sb,\nit need to be called with mddev_lock held.\n\nIn all internal cases it is, but the symbol is exported for dm-raid to\ncall and in that case the lock won\u0027t be help.\nDo make an exported version which takes the lock, and an internal\nversion which does not.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "43c73ca43b3e03bb228ff9350b6b44d0e560f262",
      "tree": "2a6fcff1e62c53ba0a95295cf02ae785b1efb501",
      "parents": [
        "0ca69886a8273ac1350143d562280bfcbe4760dc"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md/raid5: use sysfs_notify_dirent_safe to avoid NULL pointer\n\nWith the module parameter \u0027start_dirty_degraded\u0027 set,\nraid5_spare_active() previously called sysfs_notify_dirent() with a NULL\nargument (rdev-\u003esysfs_state) when a rebuild finished.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\n"
    },
    {
      "commit": "0ca69886a8273ac1350143d562280bfcbe4760dc",
      "tree": "98acbe1e5682e4455bf7d2e7a9413b5a3fd43b2a",
      "parents": [
        "067032bc628598606056412594042564fcf09e22"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: Ensure no IO request to get md device before it is properly initialised.\n\nWhen an md device is in the process of coming on line it is possible\nfor an IO request (typically a partition table probe) to get through\nbefore the array is fully initialised, which can cause unexpected\nbehaviour (e.g. a crash).\n\nSo explicitly record when the array is ready for IO and don\u0027t allow IO\nthrough until then.\n\nThere is no possibility for a similar problem when the array is going\noff-line as there must only be one \u0027open\u0027 at that time, and it is busy\noff-lining the array and so cannot send IO requests.  So no memory\nbarrier is needed in md_stop()\n\nThis has been a bug since commit 409c57f3801 in 2.6.30 which\nintroduced md_make_request.  Before then, each personality would\nregister its own make_request_fn when it was ready.\nThis is suitable for any stable kernel from 2.6.30.y onwards.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReported-by:  \"Hawrylewicz Czarnowski, Przemyslaw\" \u003cprzemyslaw.hawrylewicz.czarnowski@intel.com\u003e\n"
    },
    {
      "commit": "067032bc628598606056412594042564fcf09e22",
      "tree": "5e64b6446c2156631cc66f34330ba7b134a451bf",
      "parents": [
        "6c9879101442b08581e8a0e3ae6b7f643a78fd63"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: Fix single printks with multiple KERN_\u003clevel\u003es\n\nNoticed-by: Russell King \u003clinux@arm.linux.org.uk\u003e\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6c9879101442b08581e8a0e3ae6b7f643a78fd63",
      "tree": "bfe780d4e09896988fe367aa329a94daf55163c9",
      "parents": [
        "bf572541ab44240163eaa2d486b06f306a31d45a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:13:53 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:13:53 2011 +1100"
      },
      "message": "md: fix regression resulting in delays in clearing bits in a bitmap\n\ncommit 589a594be1fb (2.6.37-rc4) fixed a problem were md_thread would\nsometimes call the -\u003erun function at a bad time.\n\nIf an error is detected during array start up after the md_thread has\nbeen started, the md_thread is killed.  This resulted in the -\u003erun\nfunction being called once.  However the array may not be in a state\nthat it is safe to call -\u003erun.\n\nHowever the fix imposed meant that  -\u003erun was not called on a timeout.\nThis means that when an array goes idle, bitmap bits do not get\ncleared promptly.  While the array is busy the bits will still be\ncleared when appropriate so this is not very serious.  There is no\nrisk to data.\n\nChange the test so that we only avoid calling -\u003erun when the thread\nis being stopped.  This more explicitly addresses the problem situation.\n\nThis is suitable for 2.6.37-stable and any -stable kernel to which\n589a594be1fb was applied.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9d09e663d5502c46f2d9481c04c1087e1c2da698",
      "tree": "993f10eb7100a6ce8c00c0cff7951d7ffea9488e",
      "parents": [
        "99d03c141b40914b67d63c9d23b8da4386422ed7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "message": "dm: raid456 basic support\n\nThis patch is the skeleton for the DM target that will be\nthe bridge from DM to MD (initially RAID456 and later RAID1).  It\nprovides a way to use device-mapper interfaces to the MD RAID456\ndrivers.\n\nAs with all device-mapper targets, the nominal public interfaces are the\nconstructor (CTR) tables and the status outputs (both STATUSTYPE_INFO\nand STATUSTYPE_TABLE).  The CTR table looks like the following:\n\n1: \u003cs\u003e \u003cl\u003e raid \\\n2:\t\u003craid_type\u003e \u003c#raid_params\u003e \u003craid_params\u003e \\\n3:\t\u003c#raid_devs\u003e \u003cmeta_dev1\u003e \u003cdev1\u003e .. \u003cmeta_devN\u003e \u003cdevN\u003e\n\nLine 1 contains the standard first three arguments to any device-mapper\ntarget - the start, length, and target type fields.  The target type in\nthis case is \"raid\".\n\nLine 2 contains the arguments that define the particular raid\ntype/personality/level, the required arguments for that raid type, and\nany optional arguments.  Possible raid types include: raid4, raid5_la,\nraid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc.  (again, raid1 is\nplanned for the future.)  The list of required and optional parameters\nis the same for all the current raid types.  The required parameters are\npositional, while the optional parameters are given as key/value pairs.\nThe possible parameters are as follows:\n \u003cchunk_size\u003e\t\tChunk size in sectors.\n [[no]sync]\t\tForce/Prevent RAID initialization\n [rebuild \u003cidx\u003e]\tRebuild the drive indicated by the index\n [daemon_sleep \u003cms\u003e]\tTime between bitmap daemon work to clear bits\n [min_recovery_rate \u003ckB/sec/disk\u003e]\tThrottle RAID initialization\n [max_recovery_rate \u003ckB/sec/disk\u003e]\tThrottle RAID initialization\n [max_write_behind \u003cvalue\u003e]\t\tSee \u0027-write-behind\u003d\u0027 (man mdadm)\n [stripe_cache \u003csectors\u003e]\t\tStripe cache size for higher RAIDs\n\nLine 3 contains the list of devices that compose the array in\nmetadata/data device pairs.  If the metadata is stored separately, a \u0027-\u0027\nis given for the metadata device position.  If a drive has failed or is\nmissing at creation time, a \u0027-\u0027 can be given for both the metadata and\ndata drives for a given position.\n\nExamples:\n# RAID4 - 4 data drives, 1 parity\n# No metadata devices specified to hold superblock/bitmap info\n# Chunk size of 1MiB\n# (Lines separated for easy reading)\n0 1960893648 raid \\\n\traid4 1 2048 \\\n\t5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81\n\n# RAID4 - 4 data drives, 1 parity (no metadata devices)\n# Chunk size of 1MiB, force RAID initialization,\n#\tmin recovery rate at 20 kiB/sec/disk\n0 1960893648 raid \\\n        raid4 4 2048 min_recovery_rate 20 sync\\\n        5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81\n\nPerforming a \u0027dmsetup table\u0027 should display the CTR table used to\nconstruct the mapping (with possible reordering of optional\nparameters).\n\nPerforming a \u0027dmsetup status\u0027 will yield information on the state and\nhealth of the array.  The output is as follows:\n1: \u003cs\u003e \u003cl\u003e raid \\\n2:\t\u003craid_type\u003e \u003c#devices\u003e \u003c1 health char for each dev\u003e \u003cresync_ratio\u003e\n\nLine 1 is standard DM output.  Line 2 is best shown by example:\n\t0 1960893648 raid raid4 5 AAAAA 2/490221568\nHere we can see the RAID type is raid4, there are 5 devices - all of\nwhich are \u0027A\u0027live, and the array is 2/490221568 complete with recovery.\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "99d03c141b40914b67d63c9d23b8da4386422ed7",
      "tree": "d9c2d4da01f749325fac949d96e35aedea05cfc4",
      "parents": [
        "9d357b0787bb3c91835d5e658c3bda178f9ca419"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "message": "dm: per target unplug callback support\n\nAdd per-target unplug callback support.\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9d357b0787bb3c91835d5e658c3bda178f9ca419",
      "tree": "48f2c3adc8ae06918ef0523f073291990407fa28",
      "parents": [
        "4e2d19e46b507018c6ed15f6c081d8f887ae229c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "message": "dm: introduce target callbacks and congestion callback\n\nDM currently implements congestion checking by checking on congestion\nin each component device.  For raid456 we need to also check if the\nstripe cache is congested.\n\nAdd per-target congestion checker callback support.\n\nExtending the target_callbacks structure with additional callback\nfunctions allows for establishing multiple callbacks per-target (a\ncallback is also needed for unplug).\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4e2d19e46b507018c6ed15f6c081d8f887ae229c",
      "tree": "c4004056ca62763c87e5dae1c19d7e22877ec571",
      "parents": [
        "052189a2ec956810feefb6a681416c5e6a207646"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "message": "dm mpath: delay activate_path retry on SCSI_DH_RETRY\n\nThis patch adds a user-configurable \u0027pg_init_delay_msecs\u0027 feature.  Use\nthis feature to specify the number of milliseconds to delay before\nretrying scsi_dh_activate, when SCSI_DH_RETRY is returned.\n\nSCSI Device Handlers return SCSI_DH_IMM_RETRY if we could retry\nactivation immediately and SCSI_DH_RETRY in cases where it is better to\nretry after some delay.\n\nCurrently we immediately retry scsi_dh_activate irrespective of\nSCSI_DH_IMM_RETRY and SCSI_DH_RETRY.\n\nThe \u0027pg_init_delay_msecs\u0027 feature may be provided during table create or\nload, e.g.:\n    dmsetup create --table \"0 20971520 multipath 3 queue_if_no_path \\\n\tpg_init_delay_msecs 2500 ...\" mpatha\n\nThe default for \u0027pg_init_delay_msecs\u0027 is 2000 milliseconds.\nMaximum configurable delay is 60000 milliseconds.  Specifying a\n\u0027pg_init_delay_msecs\u0027 of 0 will cause immediate retry.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "052189a2ec956810feefb6a681416c5e6a207646",
      "tree": "52a1fbec2878788c6a2f6565999b97331493bc4c",
      "parents": [
        "dbc883f1570d992ba926a8c9e22140ba473c6cc1"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "message": "dm: remove superfluous irq disablement in dm_request_fn\n\nThis patch changes spin_lock_irq() to spin_lock() in dm_request_fn().\nThis patch is just a clean-up and no functional change.\n\nThe spin_lock_irq() was leftover from the early request-based dm code,\nwhere map_request() used to enable interrupts.\nSince current map_request() never enables interrupts, we can change it\nto spin_lock() to match the prior spin_unlock().\n\nAuditing through the dm and block-layer code called from\nmap_request(), I confirmed all functions save/restore interrupt\nstatus, so no function returning with interrupts enabled.\nAlso I haven\u0027t observed any problem on my test environment which\nuses scsi and lpfc driver after heavy I/O testing with occasional\npath down/up.\n\nAdded BUG_ON() to detect breakage in future.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "dbc883f1570d992ba926a8c9e22140ba473c6cc1",
      "tree": "1a6bfde475cbbe2a978a13b9e2f2a8fec959d7fe",
      "parents": [
        "b83b2f295aec418c7501c05df4dfd168a79d165a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "message": "dm log: use PTR_ERR value instead of ENOMEM\n\nIt\u0027s nicer to return the PTR_ERR() value instead of just returning\n-ENOMEM.  In the current code the PTR_ERR() value is always equal to\n-ENOMEM so this doesn\u0027t actually affect anything, but still...\n\nIn addition, dm_dirty_log_create() doesn\u0027t check for a specific -ENOMEM\nreturn.  So this change is safe relative to potential for a non -ENOMEM\nreturn in the future.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b83b2f295aec418c7501c05df4dfd168a79d165a",
      "tree": "55249c09281930055439c449f55f156784d0bb68",
      "parents": [
        "239c8dd533e74de4a7f3c85c4f9f430eb08867c1"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "message": "dm snapshot: avoid storing private suspended state\n\nUse dm_suspended() rather than having each snapshot target maintain a\nprivate \u0027suspended\u0027 flag in struct dm_snapshot.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "239c8dd533e74de4a7f3c85c4f9f430eb08867c1",
      "tree": "0dfb9e39aad0f2ab09a4f278a6e7f1b46bf64307",
      "parents": [
        "9c4376de98719d2768dd919553843de34bb094a6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "message": "dm snapshot: persistent make metadata_wq multithreaded\n\nmetadata_wq serves on-stack work items from chunk_io().  Even if\nmultiple chunk_io() are simultaneously in progress, each is\nindependent and queued only once, so multithreaded workqueue can be\nsafely used.\n\nSwitch metadata_wq to multithread and flush the work item instead of\nthe workqueue in chunk_io().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9c4376de98719d2768dd919553843de34bb094a6",
      "tree": "c20b10e9018bb51803c535a38a04ee8b12b6d98a",
      "parents": [
        "4d4d66ab5322fa9b0f51842a76139387a40e1ce9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:58 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:58 2011 +0000"
      },
      "message": "dm: use non reentrant workqueues if equivalent\n\nkmirrord_wq, kcopyd_work and md-\u003ewq are created per dm instance and\nserve only a single work item from the dm instance, so non-reentrant\nworkqueues would provide the same ordering guarantees as ordered ones\nwhile allowing CPU affinity and use of the workqueues for other\npurposes.  Switch them to non-reentrant workqueues.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4d4d66ab5322fa9b0f51842a76139387a40e1ce9",
      "tree": "37485e2fa56c38044c496ac5632e8304c5cc25db",
      "parents": [
        "f521f074abe7b3990f5df65482cdc3d851b80665"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "message": "dm: convert workqueues to alloc_ordered\n\nConvert all create[_singlethread]_work() users to the new\nalloc[_ordered]_workqueue().  This conversion is mechanical and\ndoesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f521f074abe7b3990f5df65482cdc3d851b80665",
      "tree": "b2d7693a14ce9bd8138790a9916074103cd4f957",
      "parents": [
        "d5ffa387e24646cb1cb55d80fd0f182a00e0edb7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "message": "dm stripe: switch from local workqueue to system_wq\n\nkstriped only serves sc-\u003ekstriped_ws which runs dm_table_event().\nThis doesn\u0027t need to be executed from an ordered workqueue w/ rescuer.\nDrop kstriped and use the system_wq instead.  While at it, rename\nkstriped_ws to trigger_event so that it\u0027s consistent with other dm\nmodules.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d5ffa387e24646cb1cb55d80fd0f182a00e0edb7",
      "tree": "87f253780f49fc1e438a89fa45ae7313ace6cb3f",
      "parents": [
        "fecec20e55ec117a09857ac1a455e2e6e2f17df4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "message": "dm: dont use flush_scheduled_work\n\nflush_scheduled_work() is being deprecated.  Flush the used work\ndirectly instead.  In all dm targets, the only work which uses\nsystem_wq is -\u003etrigger_event.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fecec20e55ec117a09857ac1a455e2e6e2f17df4",
      "tree": "60974cfaa003679e04321ae19d9216a1da66691e",
      "parents": [
        "810b492375f4aed5ce222982054adc0394a4bd33"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "message": "dm snapshot: remove unused dm_snapshot queued_bios_work\n\ndm_snapshot-\u003equeued_bios_work isn\u0027t used.  Remove -\u003equeued_bios[_work]\nfrom dm_snapshot structure, the flush_queued_bios work function and\nksnapd workqueue.\n\nThe DM snapshot changes that were going to use the ksnapd workqueue were\neither superseded (fix for origin write races) or never completed\n(deallocation of invalid snapshot\u0027s memory via workqueue).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "810b492375f4aed5ce222982054adc0394a4bd33",
      "tree": "f67808075083d82a9719af4c657100d5d6d5547b",
      "parents": [
        "34745785937a2003c144c0d4802fa637470d87af"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "message": "dm ioctl: suppress needless warning messages\n\nThe device-mapper should not send warning messages to syslog\nif a device is not found. This can be done by userspace\naccording to the returned dm-ioctl error code.\n\nSo move these messages to debug level and use rate limiting\nto not flood syslog.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "34745785937a2003c144c0d4802fa637470d87af",
      "tree": "580d8654326deb17f9c26b3b04c598727d8d94d9",
      "parents": [
        "d1f9642381847e2b94caa34c3533211cf36ffcf4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "message": "dm crypt: add loop aes iv generator\n\nThis patch adds a compatible implementation of the block\nchaining mode used by the Loop-AES block device encryption\nsystem (http://loop-aes.sourceforge.net/) designed\nby Jari Ruusu.\n\nIt operates on full 512 byte sectors and uses CBC\nwith an IV derived from the sector number, the data and\noptionally extra IV seed.\n\nThis means that after CBC decryption the first block of sector\nmust be tweaked according to decrypted data.\n\nLoop-AES can use three encryption schemes:\n version 1: is plain aes-cbc mode (already compatible)\n version 2: uses 64 multikey scheme with own IV generator\n version 3: the same as version 2 with additional IV seed\n            (it uses 65 keys, last key is used as IV seed)\n\nThe IV generator is here named lmk (Loop-AES multikey)\nand for the cipher specification looks like: aes:64-cbc-lmk\n\nVersion 2 and 3 is recognised according to length\nof provided multi-key string (which is just hexa encoded\n\"raw key\" used in original Loop-AES ioctl).\n\nConfiguration of the device and decoding key string will\nbe done in userspace (cryptsetup).\n(Loop-AES stores keys in gpg encrypted file, raw keys are\noutput of simple hashing of lines in this file).\n\nBased on an implementation by Max Vozeler:\n  http://article.gmane.org/gmane.linux.kernel.cryptoapi/3752/\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCC: Max Vozeler \u003cmax@hinterhof.net\u003e\n"
    },
    {
      "commit": "d1f9642381847e2b94caa34c3533211cf36ffcf4",
      "tree": "32ae1cc4b0946247384fe1a31e257658f734b3f7",
      "parents": [
        "2dc5327d3acb3340ab6fa3981401b076b78a51f4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "message": "dm crypt: add multi key capability\n\nThis patch adds generic multikey handling to be used\nin following patch for Loop-AES mode compatibility.\n\nThis patch extends mapping table to optional keycount and\nimplements generic multi-key capability.\n\nWith more keys defined the \u003ckey\u003e string is divided into\nseveral \u003ckeycount\u003e sections and these are used for tfms.\n\nThe tfm is used according to sector offset\n(sector 0-\u003etfm[0], sector 1-\u003etfm[1], sector N-\u003etfm[N modulo keycount])\n(only power of two values supported for keycount here).\n\nBecause of tfms per-cpu allocation, this mode can be take\na lot of memory on large smp systems.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Max Vozeler \u003cmax@hinterhof.net\u003e\n"
    },
    {
      "commit": "2dc5327d3acb3340ab6fa3981401b076b78a51f4",
      "tree": "32297319cd947ea8ab867ec97042983382959db8",
      "parents": [
        "20c82538e4f5ede51bc2b4795bc6e5cae772796d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "message": "dm crypt: add post iv call to iv generator\n\nIV (initialisation vector) can in principle depend not only\non sector but also on plaintext data (or other attributes).\n\nChange IV generator interface to work directly with dmreq\nstructure to allow such dependence in generator.\n\nAlso add post() function which is called after the crypto\noperation.\n\nThis allows tricky modification of decrypted data or IV\ninternals.\n\nIn asynchronous mode the post() can be called after\nctx-\u003esector count was increased so it is needed\nto add iv_sector copy directly to dmreq structure.\n(N.B. dmreq always include only one sector in scatterlists)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "20c82538e4f5ede51bc2b4795bc6e5cae772796d",
      "tree": "a70248a06b21bf249382d6f6beac4b8681bf8f35",
      "parents": [
        "c029772125594e31eb1a5ad9e0913724ed9891f2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "message": "dm crypt: use io thread for reads only if mempool exhausted\n\nIf there is enough memory, code can directly submit bio\ninstead queing this operation in separate thread.\n\nTry to alloc bio clone with GFP_NOWAIT and only if it\nfails use separate queue (map function cannot block here).\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c029772125594e31eb1a5ad9e0913724ed9891f2",
      "tree": "f97dc6534b0d3af9447002fe7d08ff25dfffed92",
      "parents": [
        "7dbcd137414f3877737802438926d6dba7906a9a"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "message": "dm crypt: scale to multiple cpus\n\nCurrently dm-crypt does all the encryption work for a single dm-crypt\nmapping in a single workqueue. This does not scale well when multiple\nCPUs are submitting IO at a high rate. The single CPU running the single\nthread cannot keep up with the encryption and encrypted IO performance\ntanks.\n\nThis patch changes the crypto workqueue to be per CPU. This means\nthat as long as the IO submitter (or the interrupt target CPUs\nfor reads) runs on different CPUs the encryption work will be also\nparallel.\n\nTo avoid a bottleneck on the IO worker I also changed those to be\nper-CPU threads.\n\nThere is still some shared data, so I suspect some bouncing\ncache lines. But I haven\u0027t done a detailed study on that yet.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7dbcd137414f3877737802438926d6dba7906a9a",
      "tree": "cb1062484dfbfab08c66d39129c63aab29ef0c30",
      "parents": [
        "86a54a4802df10d23ccd655e2083e812fe990243"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "message": "dm crypt: simplify compatible table output\n\nRename cc-\u003ecipher_mode to cc-\u003ecipher_string and store the whole of the cipher\ninformation so it can easily be printed when processing the DM_DEV_STATUS ioctl.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "86a54a4802df10d23ccd655e2083e812fe990243",
      "tree": "168ccb5f1824e16fb55ac64e2d4754775aeaa958",
      "parents": [
        "085ae0651b2791f3a430ddb76da92925b9952e13"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "message": "dm log userspace: add version number to comms\n\nThis patch adds a \u0027version\u0027 field to the \u0027dm_ulog_request\u0027\nstructure.\n\nThe \u0027version\u0027 field is taken from a portion of the unused\n\u0027padding\u0027 field in the \u0027dm_ulog_request\u0027 structure.  This\nwas done to avoid changing the size of the structure and\npossibly disrupting backwards compatibility.\n\nThe version number will help notify user-space daemons\nwhen a change has been made to the kernel/userspace\nlog API.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "085ae0651b2791f3a430ddb76da92925b9952e13",
      "tree": "8d15e4fed61628e285f7c22956f77319e5e839d5",
      "parents": [
        "909cc4fb48dd9870f6ebe4bd32cfbe37c102df62"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:51 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:51 2011 +0000"
      },
      "message": "dm log userspace: group clear and mark requests\n\nAllow the device-mapper log\u0027s \u0027mark\u0027 and \u0027clear\u0027 requests to be\ngrouped and processed in a batch.  This can significantly reduce the\namount of traffic going between the kernel and userspace (where the\nprocessing daemon resides).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "909cc4fb48dd9870f6ebe4bd32cfbe37c102df62",
      "tree": "c88ef5cc536d49871a6b176d2742048c659bbdc8",
      "parents": [
        "8d35d3e37eed884ba15229a146df846f399909b4"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "message": "dm log userspace: split flush queue\n\nSplit the \u0027flush_list\u0027, which contained a mix of both \u0027mark\u0027 and \u0027clear\u0027\nrequests, into two distinct lists (\u0027mark_list\u0027 and \u0027clear_list\u0027).\n\nThe device mapper log implementations (used by various DM targets) are\nallowed to cache \u0027mark\u0027 and \u0027clear\u0027 requests until a \u0027flush\u0027 is\nreceived.  Until now, these cached requests were kept in the same list.\nThey will now be put into distinct lists to facilitate group processing\nof these requests (in the next patch).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8d35d3e37eed884ba15229a146df846f399909b4",
      "tree": "795c77c941229f413750e99242f1b2199bebe7a1",
      "parents": [
        "4a038677df4da84e42fd68b5ab2dfa4d82baa444"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "message": "dm kcopyd: delay unplugging\n\nMake kcopyd merge more I/O requests by using device unplugging.\n\nWithout this patch, each I/O request is dispatched separately to the device.\nIf the device supports tagged queuing, there are many small requests sent\nto the device. To improve performance, this patch will batch as many requests\nas possible, allowing the queue to merge consecutive requests, and send them\nto the device at once.\n\nIn my tests (15k SCSI disk), this patch improves sequential write throughput:\n\n  Sequential write throughput (chunksize of 4k, 32k, 512k)\n  unpatched: 15.2, 18.5, 17.5 MB/s\n  patched:   14.4, 22.6, 23.0 MB/s\n\nIn most common uses (snapshot or two-way mirror), kcopyd is only used for\ntwo devices, one for reading and the other for writing, thus this optimization\nis implemented only for two devices. The optimization may be extended to n-way\nmirrors with some code complexity increase.\n\nWe keep track of two block devices to unplug (one for read and the\nother for write) and unplug them when exiting \"do_work\" thread.  If\nthere are more devices used (in theory it could happen, in practice it\nis rare), we unplug immediately.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4a038677df4da84e42fd68b5ab2dfa4d82baa444",
      "tree": "83ba491f4af4cf736b44088ad23eab45dcf92277",
      "parents": [
        "69a8cfcda21017364df1c21b720daf304b5598a6"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "message": "dm log userspace: trap all failed log construction errors\n\nWhen constructing a mirror log, it is possible for the initial request\nto fail for other reasons besides -ESRCH.  These must be handled too.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "69a8cfcda21017364df1c21b720daf304b5598a6",
      "tree": "c727770359b9295154194f0d8459ba7be3898b94",
      "parents": [
        "4a1aeb98297e17f4e0a8cdda919e63bf528b2e5d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "message": "dm crypt: set key size early\n\nSimplify key size verification (hexadecimal string) and\nset key size early in constructor.\n\n(Patch required by later changes.)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4a1aeb98297e17f4e0a8cdda919e63bf528b2e5d",
      "tree": "4709346914cbdab86200c59241262d0ea2cbd204",
      "parents": [
        "5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:48 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:48 2011 +0000"
      },
      "message": "dm: remove dm_mutex after bkl conversion\n\nThis patch replaces dm_mutex with _minor_lock in dm_blk_close()\nand then removes it.\n\nDuring the BKL conversion, commit 6e9624b8caec290d28b4c6d9ec75749df6372b87\n(block: push down BKL into .open and .release) pushed lock_kernel()\ndown into dm_blk_open/close calls.\nCommit 2a48fc0ab24241755dc93bfd4f01d68efab47f5a\n(block: autoconvert trivial BKL users to private mutex) converted it to a\nlocal mutex, but _minor_lock is sufficient.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    }
  ],
  "next": "5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4"
}
