)]}'
{
  "log": [
    {
      "commit": "8215d6ec5fee1e76545decea2cd73717efb5cb42",
      "tree": "54ed2c995c3b91417def0ad31368e3094f72bd81",
      "parents": [
        "0f3649a9e305ea22eb196a84a2d7520afcaa6060"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@novell.com",
        "time": "Sat Mar 06 02:32:27 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Mar 06 02:32:27 2010 +0000"
      },
      "message": "dm table: remove unused dm_get_device range parameters\n\nRemove unused parameters(start and len) of dm_get_device()\nand fix the callers.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "781248c1b50c776a9ef4be1130f84ced1cba42fe",
      "tree": "aa102797cde7b10623eefbeee493c36fdf2bdfe3",
      "parents": [
        "0813e22d4e0d618eac9b47bec942bf856adca4c5"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Tue Feb 16 18:42:47 2010 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Feb 16 18:42:47 2010 +0000"
      },
      "message": "dm stripe: avoid divide by zero with invalid stripe count\n\nIf a table containing zero as stripe count is passed into stripe_ctr\nthe code attempts to divide by zero.\n\nThis patch changes DM_TABLE_LOAD to return -EINVAL if the stripe count\nis zero.\n\nWe now get the following error messages:\n  device-mapper: table: 253:0: striped: Invalid stripe count\n  device-mapper: ioctl: error adding target to table\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3c5820c743479285ce2678fd3c12b1fd39fe998f",
      "tree": "8f6b3980f5e8da4912b44eee4688d51ce12c97a3",
      "parents": [
        "06d2188644c85c56d243efab914f368d1d23c4a3"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Sep 11 21:54:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 14 08:24:52 2009 +0200"
      },
      "message": "block: Optimal I/O limit wrapper\n\nImplement blk_limits_io_opt() and make blk_queue_io_opt() a wrapper\naround it. DM needs this to avoid poking at the queue_limits directly.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1f98a13f623e0ef666690a18c1250335fc6d7ef1",
      "tree": "15ca2dddffaa18a0d1844957f4f8cc707cbb8117",
      "parents": [
        "e7e503aedb1f4d165081cb8d47a58c38f80f0cb4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:32:04 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 14:33:31 2009 +0200"
      },
      "message": "bio: first step in sanitizing the bio-\u003ebi_rw flag testing\n\nGet rid of any functions that test for these bits and make callers\nuse bio_rw_flagged() directly. Then it is at least directly apparent\nwhat variable and flag they check.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "40bea431274c247425e7f5970d796ff7b37a2b22",
      "tree": "cc9791861c01605d2dca28d3eac9182c301a832c",
      "parents": [
        "a963a956225eb0f8c4d3537f428153c30adf54b8"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Sep 04 20:40:25 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Sep 04 20:40:25 2009 +0100"
      },
      "message": "dm stripe: expose correct io hints\n\nSet sensible I/O hints for striped DM devices in the topology\ninfrastructure added for 2.6.31 for userspace tools to\nobtain via sysfs.\n\nAdd .io_hints to \u0027struct target_type\u0027 to allow the I/O hints portion\n(io_min and io_opt) of the \u0027struct queue_limits\u0027 to be set by each\ntarget and implement this for dm-stripe.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5dea271b6d87bd1d79a59c1d5baac2596a841c37",
      "tree": "c85bcee4f90729927285fc282c6df94bf18d023d",
      "parents": [
        "a732c207d19e899845ae47139708af898daaf9fd"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jul 23 20:30:42 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jul 23 20:30:42 2009 +0100"
      },
      "message": "dm table: pass correct dev area size to device_area_is_valid\n\nIncorrect device area lengths are being passed to device_area_is_valid().\n\nThe regression appeared in 2.6.31-rc1 through commit\n754c5fc7ebb417b23601a6222a6005cc2e7f2913.\n\nWith the dm-stripe target, the size of the target (ti-\u003elen) was used\ninstead of the stripe_width (ti-\u003elen/#stripes).  An example of a\nconsequent incorrect error message is:\n\n  device-mapper: table: 254:0: sdb too small for target\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "af4874e03ed82f050d5872d8c39ce64bf16b5c38",
      "tree": "38aa5dee43b4bb7a369995d4f38dee992cb051e0",
      "parents": [
        "1197764e403d97231eb6da2b1e16f511a7fd3101"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Mon Jun 22 10:12:33 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:33 2009 +0100"
      },
      "message": "dm target:s introduce iterate devices fn\n\nAdd .iterate_devices to \u0027struct target_type\u0027 to allow a function to be\ncalled for all devices in a DM target.  Implemented it for all targets\nexcept those in dm-snap.c (origin and snapshot).\n\n(The raid1 version number jumps to 1.12 because we originally reserved\n1.1 to 1.11 for \u0027block_on_error\u0027 but ended up using \u0027handle_errors\u0027\ninstead.)\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: martin.petersen@oracle.com\n"
    },
    {
      "commit": "374bf7e7f6cc38b0483351a2029a97910eadde1b",
      "tree": "10db8f79cd22e0c4ecc683fdd304aca60815bf79",
      "parents": [
        "433bcac5645508b71eab2710b6817c3ef937eba8"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Jun 22 10:12:22 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:22 2009 +0100"
      },
      "message": "dm: stripe support flush\n\nFlush support for the stripe target.\n\nThis sets ti-\u003enum_flush_requests to the number of stripes and\nremaps individual flush requests to the appropriate stripe devices.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "10d3bd09a3c25df114f74f7f86e1b58d070bef32",
      "tree": "a44e2fe5ccc5950b87a1d31849e5f0ac24fdcc16",
      "parents": [
        "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "message": "dm: consolidate target deregistration error handling\n\nChange dm_unregister_target to return void and use BUG() for error\nreporting.\n\ndm_unregister_target can only fail because of programming bug in the\ntarget driver. It can\u0027t fail because of user\u0027s behavior or disk errors.\n\nThis patch changes unregister_target to return void and use BUG if\nsomeone tries to unregister non-registered target or unregister target\nthat is in use.\n\nThis patch removes code duplication (testing of error codes in all dm\ntargets) and reports bugs in just one place, in dm_unregister_target. In\nsome target drivers, these return codes were ignored, which could lead\nto a situation where bugs could be missed.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6edebdee48729ab4ba564bbfcb8dbf6a6cd68a39",
      "tree": "29b92a961e503e9257e3f34fc2e933d51315ec42",
      "parents": [
        "18776c7316545482a02bfaa2629a2aa1afc48357"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "heinzm@redhat.com",
        "time": "Thu Nov 13 23:38:56 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Nov 13 23:38:56 2008 +0000"
      },
      "message": "dm stripe: fix init failure\n\nDon\u0027t proceed if dm_stripe_init() fails to register itself as a dm target.\n\nSigned-off-by: Heinz Mauelshagen \u003cheinzm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "586e80e6ee0d137c7d79fbae183bb37bc60ee97e",
      "tree": "1f3cc124ed6ad93abd4c14f9c8900333c6cba6fb",
      "parents": [
        "d63a5ce3c0d25c96bdadc78792e5b48b846e899d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Oct 21 17:44:59 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 21 17:44:59 2008 +0100"
      },
      "message": "dm: remove dm header from targets\n\nChange #include \"dm.h\" to #include \u003clinux/device-mapper.h\u003e in all targets.\nTargets should not need direct access to internal DM structures.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d63a5ce3c0d25c96bdadc78792e5b48b846e899d",
      "tree": "ac46375b47f784dff17d1e657d5115b45ad86844",
      "parents": [
        "7acedc5b98a2fcff64f00c21110aae7d3ac2f7df"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Oct 21 17:44:57 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Oct 21 17:44:57 2008 +0100"
      },
      "message": "dm: publish array_too_big\n\nMove array_too_big to include/linux/device-mapper.h because it is\nused by targets.\n\nRemove the test from dm-raid1 as the number of mirror legs is limited\nsuch that it can never fail.  (Even for stripes it seems rather\nunlikely.)\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f331c0296f2a9fee0d396a70598b954062603015",
      "tree": "f74c467d58940131d97d90c4ea549843185e6ef0",
      "parents": [
        "cf771cb5a7b716f3f9e532fd42a1e3a0a75adec5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 03 09:01:48 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:05 2008 +0200"
      },
      "message": "block: don\u0027t depend on consecutive minor space\n\n* Implement disk_devt() and part_devt() and use them to directly\n  access devt instead of computing it from -\u003emajor and -\u003efirst_minor.\n\n  Note that all references to -\u003emajor and -\u003efirst_minor outside of\n  block layer is used to determine devt of the disk (the part0) and as\n  -\u003emajor and -\u003efirst_minor will continue to represent devt for the\n  disk, converting these users aren\u0027t strictly necessary.  However,\n  convert them for consistency.\n\n* Implement disk_max_parts() to avoid directly deferencing\n  genhd-\u003eminors.\n\n* Update bdget_disk() such that it doesn\u0027t assume consecutive minor\n  space.\n\n* Move devt computation from register_disk() to add_disk() and make it\n  the only one (all other usages use the initially determined value).\n\nThese changes clean up the code and will help disk-\u003epart dereference\nfix and extended block device numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4f7f5c675fd6bacaae3c67be44de872dcff0e3b7",
      "tree": "5825966577a4018047bc126922b1f815af905348",
      "parents": [
        "a25eb9446ad50027bc2082386e5358bedad087ed"
      ],
      "author": {
        "name": "Brian Wood",
        "email": "brian.j.wood@intel.com",
        "time": "Fri Feb 08 02:11:24 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:24 2008 +0000"
      },
      "message": "dm: stripe enhanced status return\n\nThis patch adds additional information to the status line. It is added at the\nend of the returned text so it will not interfere with existing\nimplementations using this data. The addition of this information will allow\nfor a common return interface to match that returned with the dm-raid1.c\nstatus line (with Jonathan Brassow\u0027s patches).\n\nHere is a sample of what is returned with a mirror \"status\" call:\nisw_eeaaabgfg_mirror: 0 488390920 mirror 2 8:16 8:32 3727/3727 1 AA 1 core\n\nHere\u0027s what\u0027s returned with this patch for a stripe \"status\" call:\nisw_dheeijjdej_stripe: 0 976783872 striped 2 8:16 8:32 1 AA\n\nSigned-off-by: Brian Wood \u003cbrian.j.wood@intel.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a25eb9446ad50027bc2082386e5358bedad087ed",
      "tree": "d9d2e5d26dbf403efa69dd52aec94bf37c82da78",
      "parents": [
        "fb8b284806124bef250196007d7373ea3fe26194"
      ],
      "author": {
        "name": "Brian Wood",
        "email": "brian.j.wood@intel.com",
        "time": "Fri Feb 08 02:11:22 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:22 2008 +0000"
      },
      "message": "dm: stripe trigger event on failure\n\nThis patch adds the stripe_end_io function to process errors that might\noccur after an IO operation. As part of this there are a number of\nenhancements made to record and trigger events:\n\n- New atomic variable in struct stripe to record the number of\nerrors each stripe volume device has experienced (could be used\nlater with uevents to report back directly to userspace)\n\n- New workqueue/work struct setup to process the trigger_event function\n\n- New end_io function. It is here that testing for BIO error conditions\ntake place. It determines the exact stripe that cause the error,\nrecords this in the new atomic variable, and calls the queue_work() function\n\n- New trigger_event function to process failure events. This\ncalls dm_table_event()\n\nSigned-off-by: Brian Wood \u003cbrian.j.wood@intel.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f3c3f0afa50782dc1742c968646c491657d255a",
      "tree": "cb1f69504094cec60564be51c405bba5eb66c322",
      "parents": [
        "ae9da83f6d800fe1f3b23bfbc8f7222ad1c5bb74"
      ],
      "author": {
        "name": "vignesh babu",
        "email": "vignesh.babu@wipro.com",
        "time": "Fri Oct 19 22:38:44 2007 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat Oct 20 02:01:06 2007 +0100"
      },
      "message": "dm: use is_power_of_2\n\nReplacing n \u0026 (n - 1) for power of 2 check by is_power_of_2(n)\n\nSigned-off-by: vignesh babu \u003cvignesh.babu@wipro.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d2a7ad29a810441e9dacbaddcc2f0c6045390008",
      "tree": "36bea90fa2f286f525a3b4f05adf40ec4d28221c",
      "parents": [
        "45cbcd798354251b99694086af9d57c99e89bb43"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Fri Dec 08 02:41:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:09 2006 -0800"
      },
      "message": "[PATCH] dm: map and endio symbolic return codes\n\nUpdate existing targets to use the new symbols for return values from target\nmap and end_io functions.\n\nThere is no effect on behaviour.\n\nTest results:\nDone build test without errors.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72d9486169a2a8353e022813185ba2f32d7dde69",
      "tree": "2fe6c382feb3f21d829abf543c54be486007557c",
      "parents": [
        "5c6bd75d06db512515a3781aa97e42df2faf0815"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 26 00:27:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:36 2006 -0700"
      },
      "message": "[PATCH] dm: improve error message consistency\n\nTidy device-mapper error messages to include context information\nautomatically.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a22c96c737a9cefbe8d6e991c0032ad6db825a67",
      "tree": "95a19ae05a86e9ecf29fd2aa0747c0af2266d728",
      "parents": [
        "b4cf1b72eec0e197257a5b07dc9ec53552cdd123"
      ],
      "author": {
        "name": "Kevin Corry",
        "email": "kevcorry@us.ibm.com",
        "time": "Mon Mar 27 01:18:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:45:00 2006 -0800"
      },
      "message": "[PATCH] dm: remove unnecessary typecast\n\nSigned-off-by: Kevin Corry \u003ckevcorry@us.ibm.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ee218cd67b385759993a6c840ea45f0ee0a8b30",
      "tree": "788d33b31e9d008eeb2de2a7f874e45b09695719",
      "parents": [
        "930d332a23682202c07df0276dd665a57755b37d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Mar 27 01:17:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:58 2006 -0800"
      },
      "message": "[PATCH] dm: remove SECTOR_FORMAT\n\nWe don\u0027t know what type sector_t has.  Sometimes it\u0027s unsigned long, sometimes\nit\u0027s unsigned long long.  For example on ppc64 it\u0027s unsigned long with\nCONFIG_LBD\u003dn and on x86_64 it\u0027s unsigned long long with CONFIG_LBD\u003dn.\n\nThe way to handle all of this is to always use unsigned long long and to\nalways typecast the sector_t when printing it.\n\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ba32fde2c5be52865b2fd7e5e3752a46971fabe",
      "tree": "91988d69b76b1d142117b0ed827fc20eb11c9360",
      "parents": [
        "82c3c03a4096badd026c6e337f3c5dde020e9ec6"
      ],
      "author": {
        "name": "Kevin Corry",
        "email": "kevcorry@us.ibm.com",
        "time": "Thu Mar 16 23:04:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 17 07:51:25 2006 -0800"
      },
      "message": "[PATCH] dm stripe: Fix bounds\n\nThe dm-stripe target currently does not enforce that the size of a stripe\ndevice be a multiple of the chunk-size.  Under certain conditions, this can\nlead to I/O requests going off the end of an underlying device.  This\ntest-case shows one example.\n\necho \"0 100 linear /dev/hdb1 0\" | dmsetup create linear0\necho \"0 100 linear /dev/hdb1 100\" | dmsetup create linear1\necho \"0 200 striped 2 32 /dev/mapper/linear0 0 /dev/mapper/linear1 0\" | \\\n   dmsetup create stripe0\ndd if\u003d/dev/zero of\u003d/dev/mapper/stripe0 bs\u003d1k\n\nThis will produce the output:\ndd: writing \u0027/dev/mapper/stripe0\u0027: Input/output error\n97+0 records in\n96+0 records out\n\nAnd in the kernel log will be:\nattempt to access beyond end of device\ndm-0: rw\u003d0, want\u003d104, limit\u003d100\n\nThe patch will check that the table size is a multiple of the stripe\nchunk-size when the table is created, which will prevent the above striped\ndevice from being created.\n\nThis should not affect tools like LVM or EVMS, since in all the cases I can\nthink of, striped devices are always created with the sizes being a\nmultiple of the chunk-size.\n\nThe size of a stripe device must be a multiple of its chunk-size.\n\n(akpm: that typecast is quite gratuitous)\n\nSigned-off-by: Kevin Corry \u003ckevcorry@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
