)]}'
{
  "log": [
    {
      "commit": "dafb20fa34320a472deb7442f25a0c086e0feb33",
      "tree": "2ff501805f8a6d08119f1f1a7248f579d52e491b",
      "parents": [
        "d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md: tidy up rdev_for_each usage.\n\nmd.h has an \u0027rdev_for_each()\u0027 macro for iterating the rdevs in an\nmddev.  However it uses the \u0027safe\u0027 version of list_for_each_entry,\nand so requires the extra variable, but doesn\u0027t include \u0027safe\u0027 in the\nname, which is useful documentation.\n\nConsequently some places use this safe version without needing it, and\nmany use an explicity list_for_each entry.\n\nSo:\n - rename rdev_for_each to rdev_for_each_safe\n - create a new rdev_for_each which uses the plain\n   list_for_each_entry,\n - use the \u0027safe\u0027 version only where needed, and convert all other\n   list_for_each_entry calls to use rdev_for_each.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0ca93de9b789e0eb05e103f0c04de72df13da73a",
      "tree": "3a7bd34140d69a9c7bc5eb1874de773511770197",
      "parents": [
        "3aa3b2b2b1edb813dc5342d0108befc39541542d"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 07 19:09:48 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:48 2012 +0000"
      },
      "message": "dm raid: fix flush support\n\nFix dm-raid flush support.\n\nBoth md and dm have support for flush, but the dm-raid target\nforgot to set the flag to indicate that flushes should be\npassed on.  (Important for data integrity e.g. with writeback cache\nenabled.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3aa3b2b2b1edb813dc5342d0108befc39541542d",
      "tree": "151000a59d089231fcefbf44539c89ee56436c84",
      "parents": [
        "af63bcb817cf708f53bcae6edc2e3fb7dd7d8051"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 07 19:09:47 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:47 2012 +0000"
      },
      "message": "dm raid: set MD_CHANGE_DEVS when rebuilding\n\nThe \u0027rebuild\u0027 parameter is used to rebuild individual devices in an\narray (e.g. resynchronize a RAID1 device or recalculate a parity device\nin higher RAID).  The MD_CHANGE_DEVS flag must be set when this\nparameter is given in order to write out the superblocks and make the\nchange take immediate effect.  The code that handles new devices in\nsuper_load already sets MD_CHANGE_DEVS and \u0027FirstUse\u0027.  (The \u0027FirstUse\u0027\nflag was being set as a special case for rebuilds in\nsuper_init_validation.)\n\nAdd a condition for rebuilds in super_load to take care of both flags\nwithout the special case in \u0027super_init_validation\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "34f8ac6d79e5446c6242e4bcb474f152c857c5c6",
      "tree": "5a0be3b7910428e52603304aa53e8da4476fb4b2",
      "parents": [
        "307729c8bc5b5a41361af8af95906eee7552acb1"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 27 14:53:53 2012 -0600"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jan 31 09:43:41 2012 +1100"
      },
      "message": "Prevent DM RAID from loading bitmap twice.\n\nThe life cycle of a device-mapper target is:\n1) create\n2) resume\n3) suspend\n*) possibly repeat from 2\n4) destroy\n\nThe dm-raid target is unconditionally calling MD\u0027s bitmap_load function upon\nevery resume.  If steps 2 \u0026 3 above are repeated, bitmap_load is called\nmultiple times.  It is only written to be called once; otherwise, it allocates\nnew memory for the bitmap (without freeing the old) and incrementing the number\nof pages it thinks it has without zeroing first.  This ultimately leads to\naccess beyond allocated memory and lost memory.\n\nSimply avoiding the bitmap_load call upon resume is not sufficient.  If the\ntarget was suspended while the initial recovery was only partially complete,\nit needs to be restarted when the target is resumed.  This is why\n\u0027md_wakeup_thread\u0027 is called before issuing the \u0027mddev_resume\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "43672a0784707d795556b1f93925da8b8e797d03",
      "tree": "5c92aabd211281300f89fc2e69e9ee7e58bcc449",
      "parents": [
        "2380078cdb7e6d520e33dcf834e0be979d542e48",
        "2e727c3ca1beff05f27b6207a795790f222bf8d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 17:02:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 17:02:37 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm:\n  dm: raid fix device status indicator when array initializing\n  dm log userspace: add log device dependency\n  dm log userspace: fix comment hyphens\n  dm: add thin provisioning target\n  dm: add persistent data library\n  dm: add bufio\n  dm: export dm get md\n  dm table: add immutable feature\n  dm table: add always writeable feature\n  dm table: add singleton feature\n  dm kcopyd: add dm_kcopyd_zero to zero an area\n  dm: remove superfluous smp_mb\n  dm: use local printk ratelimit\n  dm table: propagate non rotational flag\n"
    },
    {
      "commit": "056075c76417b112b4924e7b6386fdc6dfc9ac03",
      "tree": "7326cbdb0f54f975b140e548bd4f4d6f4b3486cc",
      "parents": [
        "ec37d321b96621906337c4279c490e1b5893ecae"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 03 13:58:33 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:18 2011 -0400"
      },
      "message": "md: Add module.h to all files using it implicitly\n\nA pending cleanup will mean that module.h won\u0027t be implicitly\neverywhere anymore.  Make sure the modular drivers in md dir\nare actually calling out for \u003cmodule.h\u003e explicitly in advance.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "2e727c3ca1beff05f27b6207a795790f222bf8d8",
      "tree": "d00c9aeea0173051fe3bbd4398697acab9ab61ca",
      "parents": [
        "5a25f0eb707bbb4a5aaaf19c933605a6dbaf77a5"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Oct 31 20:21:26 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Oct 31 20:21:26 2011 +0000"
      },
      "message": "dm: raid fix device status indicator when array initializing\n\nWhen devices in a RAID array are not in-sync, they are supposed to be\nreported as such in the status output as an \u0027a\u0027 character, which means\n\"alive, but not in-sync\".  But when the entire array is rebuilt \u0027A\u0027 is\nbeing used, which is incorrect.  This patch corrects this to \u0027a\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c3ae1f33569e06984f0426a7834ff63251d44d84",
      "tree": "0d7f6f6b49c331e440850cf2e8a7bc0cf220f8bc",
      "parents": [
        "c28cfd60e4ec3f494b73ef7d6c661f5f491cd84f",
        "d890fa2b0586b6177b119643ff66932127d58afa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 21:39:42 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 21:39:42 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (34 commits)\n  md: Fix some bugs in recovery_disabled handling.\n  md/raid5: fix bug that could result in reads from a failed device.\n  lib/raid6: Fix filename emitted in generated code\n  md.c: trivial comment fix\n  MD: Allow restarting an interrupted incremental recovery.\n  md: clear In_sync bit on devices added to an active array.\n  md: add proper write-congestion reporting to RAID1 and RAID10.\n  md: rename \"mdk_personality\" to \"md_personality\"\n  md/bitmap remove fault injection options.\n  md/raid5: typedef removal: raid5_conf_t -\u003e struct r5conf\n  md/raid1: typedef removal: conf_t -\u003e struct r1conf\n  md/raid10: typedef removal: conf_t -\u003e struct r10conf\n  md/raid0: typedef removal: raid0_conf_t -\u003e struct r0conf\n  md/multipath: typedef removal: multipath_conf_t -\u003e struct mpconf\n  md/linear: typedef removal: linear_conf_t -\u003e struct linear_conf\n  md/faulty: remove typedef: conf_t -\u003e struct faulty_conf\n  md/linear: remove typedefs: dev_info_t -\u003e struct dev_info\n  md: remove typedefs: mirror_info_t -\u003e struct mirror_info\n  md: remove typedefs: r10bio_t -\u003e struct r10bio and r1bio_t -\u003e struct r1bio\n  md: remove typedefs: mdk_thread_t -\u003e struct md_thread\n  ...\n"
    },
    {
      "commit": "d1688a6d5515f1900af76a963b4bb6d9a6554cfa",
      "tree": "2ed2b1001804b6982697c3785f06580a4e84e31b",
      "parents": [
        "e8096360476689898f038feebf5b352c9ec43a2a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:52 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:49:52 2011 +1100"
      },
      "message": "md/raid5: typedef removal: raid5_conf_t -\u003e struct r5conf\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fd01b88c75a718020ff77e7f560d33835e9b58de",
      "tree": "c455d5adefd58f3263dcf265bb8ba2024523b106",
      "parents": [
        "3cb03002000f133f9f97269edefd73611eafc873"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:47:53 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:47:53 2011 +1100"
      },
      "message": "md: remove typedefs: mddev_t -\u003e struct mddev\n\nHaving mddev_t and \u0027struct mddev_s\u0027 is ugly and not preferred\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "3cb03002000f133f9f97269edefd73611eafc873",
      "tree": "77fdb146666298b33aaeef0c05f082b6f82840fe",
      "parents": [
        "50de8df4abca1b27dbf7b2f81a56451bd8b5a7d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:45:26 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 11 16:45:26 2011 +1100"
      },
      "message": "md: removing typedefs:  mdk_rdev_t -\u003e struct md_rdev\n\nThe typedefs are just annoying. \u0027mdk\u0027 probably refers to \u0027md_k.h\u0027\nwhich used to be an include file that defined this thing.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8232480944d173378082ebb2cac8a3207c08cf31",
      "tree": "d77436773e5c8a2274e1b0db507e5c251f225ecf",
      "parents": [
        "876fbba1db4a377f050a2bb49b474c7527b2995d"
      ],
      "author": {
        "name": "Jonthan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Sun Sep 25 23:26:19 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun Sep 25 23:26:19 2011 +0100"
      },
      "message": "dm: raid fix write_mostly arg validation\n\nFix off-by-one error in validation of write_mostly.\n\nThe user-supplied value given for the \u0027write_mostly\u0027 argument must be an\nindex starting at 0.  The validation of the supplied argument failed to\ncheck for \u0027N\u0027 (\u0027\u003e\u0027 vs \u0027\u003e\u003d\u0027), which would have caused an access beyond the\nend of the array.\n\nReported-by: Doug Ledford \u003cdledford@redhat.com\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "327372797c88b24953f454cd51a3734c02697bdd",
      "tree": "e7f7e3dff1415817b31af76d746240d80772b448",
      "parents": [
        "b12d437b73d32203a41fde0d407e91812c866844"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add md raid1 support\n\nSupport the MD RAID1 personality through dm-raid.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b12d437b73d32203a41fde0d407e91812c866844",
      "tree": "3c7a33f4a45779da4a5edb71678ce7f8ae4169e7",
      "parents": [
        "46bed2b5c16bb7c82e1088d7ae75fb958c8a8c4e"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: support metadata devices\n\nAdd the ability to parse and use metadata devices to dm-raid.  Although\nnot strictly required, without the metadata devices, many features of\nRAID are unavailable.  They are used to store a superblock and bitmap.\n\nThe role, or position in the array, of each device must be recorded in\nits superblock.  This is to help with fault handling, array reshaping,\nand sanity checks.  RAID 4/5/6 devices must be loaded in a specific order:\nin this way, the \u0027array_position\u0027 field helps validate the correctness\nof the mapping when it is loaded.  It can be used during reshaping to\nidentify which devices are added/removed.  Fault handling is impossible\nwithout this field.  For example, when a device fails it is recorded in\nthe superblock.  If this is a RAID1 device and the offending device is\nremoved from the array, there must be a way during subsequent array\nassembly to determine that the failed device was the one removed.  This\nis done by correlating the \u0027array_position\u0027 field and the bit-field\nvariable \u0027failed_devices\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "46bed2b5c16bb7c82e1088d7ae75fb958c8a8c4e",
      "tree": "bab932a8eec324ca470407ff54097d86a3c0e27f",
      "parents": [
        "c1084561bb85da3630540ebe951749a8cd8fc714"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add write_mostly parameter\n\nAdd the write_mostly parameter to RAID1 dm-raid tables.\n\nThis allows the user to set the WriteMostly flag on a RAID1 device that\nshould normally be avoided for read I/O.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c1084561bb85da3630540ebe951749a8cd8fc714",
      "tree": "ecdefcf24dd88f4c19a873fa5d26039a0edf03a7",
      "parents": [
        "c0a2fa1ef1057a1e9450d6f055f1cde2ad4f85a2"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:07 2011 +0100"
      },
      "message": "dm raid: add region_size parameter\n\nAllow the user to specify the region_size.\n\nEnsures that the supplied value meets md\u0027s constraints, viz. the number of\nregions does not exceed 2^21.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3e8dbb7f3966c80d77272f8b4f430babc99f6595",
      "tree": "00192da87f8e5db890bd5c6dab9c941a905b294e",
      "parents": [
        "2ca4c92f58f9386e080b26f9ccd78c9ca5825a42"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:03 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:03 2011 +0100"
      },
      "message": "dm raid: tidy includes\n\nA dm target only needs to use include/linux dm headers.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "13c87583ea4e867211fc3e7edab750c353c47c95",
      "tree": "93d1a2b20f1033e031eedf86a19ab822b1fbb576",
      "parents": [
        "a2d2b0345a0f30c169b7d08b8cebdd4853fcb0f8"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Aug 02 12:32:03 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:03 2011 +0100"
      },
      "message": "dm raid: cleanup parameter handling\n\nRe-order the parameters so they are handled consistently in the same order\nwhere defined, parsed and output.\n\nOnly include rebuild parameters in the STATUSTYPE_TABLE output if they were\nsupplied in the original table line.\n\nCorrect the parameter count when outputting rebuild: there are two words,\nnot one.\n\nUse case-independent checks for keywords (as in other device-mapper targets).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\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": "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": "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"
    }
  ]
}
