)]}'
{
  "log": [
    {
      "commit": "c2b498857e35bac3ae76a0c546122e1b76d1486a",
      "tree": "15c2fbec9ae49c82ceea1ea8f6913059d8ed09c8",
      "parents": [
        "eb81cf19f5740d1397a72d1abb59570e1dda2711"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Aug 02 12:32:01 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:43 2011 -0700"
      },
      "message": "dm: fix idr leak on module removal\n\ncommit d15b774c2920d55e3d58275c97fbe3adc3afde38 upstream.\n\nDestroy _minor_idr when unloading the core dm module.  (Found by kmemleak.)\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "eb81cf19f5740d1397a72d1abb59570e1dda2711",
      "tree": "10289bf0289a7c5fb89b6086fb861a5ad0d666c7",
      "parents": [
        "b41ed9c38a42daa4b474ebf18eb06ef1f17351f5"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Aug 02 12:32:00 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:43 2011 -0700"
      },
      "message": "dm mpath: fix potential NULL pointer in feature arg processing\n\ncommit 286f367dad40beb3234a18c17391d03ba939a7f3 upstream.\n\nAvoid dereferencing a NULL pointer if the number of feature arguments\nsupplied is fewer than indicated.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b41ed9c38a42daa4b474ebf18eb06ef1f17351f5",
      "tree": "cb82dcf03bce59367a52d77a24083f840247c3e0",
      "parents": [
        "ee607aa21a02855bc4ae6c4c775fd3456f961404"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Aug 02 12:32:00 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:42 2011 -0700"
      },
      "message": "dm snapshot: flush disk cache when merging\n\ncommit 762a80d9fc9f690a3a35983f3b4619a220650808 upstream.\n\nThis patch makes dm-snapshot flush disk cache when writing metadata for\nmerging snapshot.\n\nWithout cache flushing the disk may reorder metadata write and other\ndata writes and there is a possibility of data corruption in case of\npower fault.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ee607aa21a02855bc4ae6c4c775fd3456f961404",
      "tree": "e1713660b10ff8514d6d3726d280f72404e49fd3",
      "parents": [
        "f8c62dc268a9f499b86c051ddd3bacf10d70e347"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Aug 02 12:32:01 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:42 2011 -0700"
      },
      "message": "dm io: flush cpu cache with vmapped io\n\ncommit bb91bc7bacb906c9f3a9b22744c53fa7564b51ba upstream.\n\nFor normal kernel pages, CPU cache is synchronized by the dma layer.\nHowever, this is not done for pages allocated with vmalloc. If we do I/O\nto/from vmallocated pages, we must synchronize CPU cache explicitly.\n\nPrior to doing I/O on vmallocated page we must call\nflush_kernel_vmap_range to flush dirty cache on the virtual address.\nAfter finished read we must call invalidate_kernel_vmap_range to\ninvalidate cache on the virtual address, so that accesses to the virtual\naddress return newly read data and not stale data from CPU cache.\n\nThis patch fixes metadata corruption on dm-snapshots on PA-RISC and\npossibly other architectures with caches indexed by virtual address.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4274215d24633df7302069e51426659d4759c5ed",
      "tree": "c21fff5f11201eaaea0e44cf81a38df21dd63ffd",
      "parents": [
        "2992c4bd5742b31a0ee00a76eee9c1c284507418"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 28 16:59:42 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 28 16:59:42 2011 +1000"
      },
      "message": "md: avoid endless recovery loop when waiting for fail device to complete.\n\nIf a device fails in a way that causes pending request to take a while\nto complete, md will not be able to immediately remove it from the\narray in remove_and_add_spares.\nIt will then incorrectly look like a spare device and md will try to\nrecover it even though it is failed.\nThis leads to a recovery process starting and instantly aborting over\nand over again.\n\nWe should check if the device is faulty before considering it to be a\nspare.  This will avoid trying to start a recovery that cannot\nproceed.\n\nThis bug was introduced in 2.6.26 so that patch is suitable for any\nkernel since then.\n\nCc: stable@kernel.org\nReported-by: Jim Paradis \u003cjames.paradis@stratus.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fcde90759a985d8bfa4391346a821cc12fc16207",
      "tree": "6bf70b409c98cd019d7814c19b52a54690dcc8de",
      "parents": [
        "b062962edb086011e94ec4d9eb3f6a6d814f2a8f"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Jun 14 14:23:57 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 14 14:23:57 2011 +1000"
      },
      "message": "md/raid5: remove unusual use of bio_iovec_idx()\n\nIn the bio_for_each_segment loop, bvl always points current\nbio_vec, so the same as bio_iovec_idx(, i). Let\u0027s get rid of\nit.\n\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b062962edb086011e94ec4d9eb3f6a6d814f2a8f",
      "tree": "4b832dab3687db5b719266d758a916bbc118e1f0",
      "parents": [
        "9b2dc8b665932a8e681a7ab3237f60475e75e161"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Jun 14 14:20:19 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 14 14:20:19 2011 +1000"
      },
      "message": "md/raid5: fix FUA request handling in ops_run_io()\n\nCommit e9c7469bb4f5 (\"md: implment REQ_FLUSH/FUA support\")\nintroduced R5_WantFUA flag and set rw to WRITE_FUA in that case.\nHowever remaining code still checks whether rw is exactly same\nas WRITE or not, so FUAed-write ends up with being treated as\nREAD. Fix it.\n\nThis bug has been present since 2.6.37 and the fix is suitable for any\n-stable kernel since then.  It is not clear why this has not caused\nmore problems.\n\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9b2dc8b665932a8e681a7ab3237f60475e75e161",
      "tree": "2f9b4b6a1439de5eb15afe0ca8c71f3e2347befc",
      "parents": [
        "f699bf2328521cc3e20c412fcdb9ffe1255c360f"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jun 13 14:48:22 2011 +0900"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jun 14 14:09:41 2011 +1000"
      },
      "message": "md/raid5: fix raid5_set_bi_hw_segments\n\nThe @bio-\u003ebi_phys_segments consists of active stripes count in the\nlower 16 bits and processed stripes count in the upper 16 bits. So\nlogical-OR operator should be bitwise one.\n\nThis bug has been present since 2.6.27 and the fix is suitable for any\n-stable kernel since then.  Fortunately the bad code is only used on\nerror paths and is relatively unlikely to be hit.\n\nCc: stable@kernel.org\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "97b3d4aacfbd7186faf34597fcf1f55b8579be17",
      "tree": "3ccd769c8003b3b999116bf9c1a09f0308d9806c",
      "parents": [
        "27d5ea04d08bea37bf651090e5f3c573d2390df8"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Jun 09 11:43:01 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:43:01 2011 +1000"
      },
      "message": "md/bitmap: remove unused fields from struct bitmap\n\nGet rid of -\u003esyncchunk and -\u003ecounter_bits since they\u0027re never used.\n\nAlso discard COUNTER_BYTE_RATIO which is unused.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "27d5ea04d08bea37bf651090e5f3c573d2390df8",
      "tree": "cb951827fa265699eb5179c741f202ca4d82a154",
      "parents": [
        "01393f3d5836b7d62e925e6f4658a7eb22b83a11"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Jun 09 11:42:57 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:42:57 2011 +1000"
      },
      "message": "md/bitmap: use proper accessor macro\n\nUse COUNTER()/NEEDED() macro instead of open-coding them.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "01393f3d5836b7d62e925e6f4658a7eb22b83a11",
      "tree": "38c6b3856adc22ef5bcada7855a6601d6e2e9654",
      "parents": [
        "9864c0053d3da4c5731ac8a6c4835179310bd40a"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Jun 09 11:42:54 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:42:54 2011 +1000"
      },
      "message": "md: check -\u003ehot_remove_disk when removing disk\n\nCheck pers-\u003ehot_remove_disk instead of pers-\u003ehot_add_disk in slot_store()\nduring disk removal. The linear personality only has -\u003ehot_add_disk and\nno -\u003ehot_remove_disk, so that removing disk in the array resulted to\nfollowing kernel bug:\n\n$ sudo mdadm --create /dev/md0 --level\u003dlinear --raid-devices\u003d4 /dev/loop[0-3]\n$ echo none | sudo tee /sys/block/md0/md/dev-loop2/slot\n BUG: unable to handle kernel NULL pointer dereference at           (null)\n IP: [\u003c          (null)\u003e]           (null)\n PGD c9f5d067 PUD 8575a067 PMD 0\n Oops: 0010 [#1] SMP\n CPU 2\n Modules linked in: linear loop bridge stp llc kvm_intel kvm asus_atk0110 sr_mod cdrom sg\n\n Pid: 10450, comm: tee Not tainted 3.0.0-rc1-leonard+ #173 System manufacturer System Product Name/P5G41TD-M PRO\n RIP: 0010:[\u003c0000000000000000\u003e]  [\u003c          (null)\u003e]           (null)\n RSP: 0018:ffff880085757df0  EFLAGS: 00010282\n RAX: ffffffffa00168e0 RBX: ffff8800d1431800 RCX: 000000000000006e\n RDX: 0000000000000001 RSI: 0000000000000002 RDI: ffff88008543c000\n RBP: ffff880085757e48 R08: 0000000000000002 R09: 000000000000000a\n R10: 0000000000000000 R11: ffff88008543c2e0 R12: 00000000ffffffff\n R13: ffff8800b4641000 R14: 0000000000000005 R15: 0000000000000000\n FS:  00007fe8c9e05700(0000) GS:ffff88011fa00000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n CR2: 0000000000000000 CR3: 00000000b4502000 CR4: 00000000000406e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process tee (pid: 10450, threadinfo ffff880085756000, task ffff8800c9f08000)\n Stack:\n  ffffffff8138496a ffff8800b4641000 ffff88008543c268 0000000000000000\n  ffff8800b4641000 ffff88008543c000 ffff8800d1431868 ffffffff81a78a90\n  ffff8800b4641000 ffff88008543c000 ffff8800d1431800 ffff880085757e98\n Call Trace:\n  [\u003cffffffff8138496a\u003e] ? slot_store+0xaa/0x265\n  [\u003cffffffff81384bae\u003e] rdev_attr_store+0x89/0xa8\n  [\u003cffffffff8115a96a\u003e] sysfs_write_file+0x108/0x144\n  [\u003cffffffff81106b87\u003e] vfs_write+0xb1/0x10d\n  [\u003cffffffff8106e6c0\u003e] ? trace_hardirqs_on_caller+0x111/0x135\n  [\u003cffffffff81106cac\u003e] sys_write+0x4d/0x77\n  [\u003cffffffff814fe702\u003e] system_call_fastpath+0x16/0x1b\n Code:  Bad RIP value.\n RIP  [\u003c          (null)\u003e]           (null)\n  RSP \u003cffff880085757df0\u003e\n CR2: 0000000000000000\n ---[ end trace ba5fc64319a826fb ]---\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9864c0053d3da4c5731ac8a6c4835179310bd40a",
      "tree": "4aea4c5a457f9e2c4058abfb2d6b69b843c721c5",
      "parents": [
        "d744540cd39e93976c4c8401e140232444ef3b0b"
      ],
      "author": {
        "name": "马建朋",
        "email": "majianpeng@gmail.com",
        "time": "Thu Jun 09 11:42:48 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:42:48 2011 +1000"
      },
      "message": "md: Using poll  /proc/mdstat can monitor the events of adding a spare disks\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d744540cd39e93976c4c8401e140232444ef3b0b",
      "tree": "66b818b089b1068ca02f05ed5e7be896fc311d18",
      "parents": [
        "d6b212f4b19da5301e6b6eca562e5c7a2a6e8c8d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Jun 08 18:01:10 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:42:36 2011 +1000"
      },
      "message": "MD: use is_power_of_2 macro\n\nMake use of is_power_of_2 macro.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d6b212f4b19da5301e6b6eca562e5c7a2a6e8c8d",
      "tree": "0cf0ae9320ea9ebbb6bd1403659591cf399c16a1",
      "parents": [
        "9c81075f436f867f580c2edf2350c0898cffc9d0"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Jun 08 18:00:28 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:42:29 2011 +1000"
      },
      "message": "MD: raid5 do not set fullsync\n\nAdd check to determine if a device needs full resync or if partial resync will do\n\nRAID 5 was assuming that if a device was not In_sync, it must undergo a full\nresync.  We add a check to see if \u0027saved_raid_disk\u0027 is the same as \u0027raid_disk\u0027.\nIf it is, we can safely skip the full resync and rely on the bitmap for\npartial recovery instead.  This is the legitimate purpose of \u0027saved_raid_disk\u0027,\nfrom md.h:\nint saved_raid_disk;            /* role that device used to have in the\n                                 * array and could again if we did a partial\n                                 * resync from the bitmap\n                                 */\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9c81075f436f867f580c2edf2350c0898cffc9d0",
      "tree": "025ec9792e7f5700d9383ba15f953fb0d1f07ec9",
      "parents": [
        "076f968b37f0232d883749da8f5031df5dea7ade"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Jun 08 17:59:30 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jun 09 11:41:36 2011 +1000"
      },
      "message": "MD: support initial bitmap creation in-kernel\n\nAdd bitmap support to the device-mapper specific metadata area.\n\nThis patch allows the creation of the bitmap metadata area upon\ninitial array creation via device-mapper.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "076f968b37f0232d883749da8f5031df5dea7ade",
      "tree": "aa1c58756c3754abe657be36b4720a16d5c41858",
      "parents": [
        "1ed7242e591af7e233234d483f12d33818b189d9"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jun 07 17:51:30 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jun 08 15:11:31 2011 +1000"
      },
      "message": "MD: add sync_super to mddev_t struct\n\nAdd the \u0027sync_super\u0027 function pointer to MD array structure (struct mddev_s)\n\nIf device-mapper (dm-raid.c) is to define its own on-disk superblock and be\nable to load it, there must still be a way for MD to initiate superblock\nupdates.  The simplest way to make this happen is to provide a pointer in\nthe MD array structure that can be set by device-mapper (or other module)\nwith a function to do this.  If the function has been set, it will be used;\notherwise, the method with be looked up via \u0027super_types\u0027 as usual.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1ed7242e591af7e233234d483f12d33818b189d9",
      "tree": "87d4a65cdb3510a97da7f2aefb9534839c49cfa4",
      "parents": [
        "0fd018af37dadbb7826850883ad8abfecdb1a00b"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jun 07 17:50:35 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jun 08 15:11:31 2011 +1000"
      },
      "message": "MD: raid1 changes to allow use by device mapper\n\nMD RAID1: Changes to allow RAID1 to be used by device-mapper (dm-raid.c)\n\nAdded the necessary congestion function and conditionalize calls requiring an\narray \u0027queue\u0027 or \u0027gendisk\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0fd018af37dadbb7826850883ad8abfecdb1a00b",
      "tree": "f95ebb9ec9111dc87ad8037ff7e07da802d924e3",
      "parents": [
        "ac42450c7c814769bee963ae4b897c149bb0ab53"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jun 07 17:49:36 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jun 08 15:11:31 2011 +1000"
      },
      "message": "MD: move thread wakeups into resume\n\nMove personality and sync/recovery thread starting outside md_run.\n\nMoving the wakeup\u0027s of the personality and sync/recovery threads out of\nmd_run and into do_md_run and mddev_resume solves two issues:\n1) It allows bitmap_load to be called before the sync_thread is run and\n2) when MD personalities are used by device-mapper (dm-raid.c), the start-up\nof the array is better alligned with device-mapper primatives\n(CTR/resume/suspend/DTR).  I/O - in this case, recovery operations - should\nnot happen until after a resume has taken place.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ac42450c7c814769bee963ae4b897c149bb0ab53",
      "tree": "582225e700c0a9eb0f99959f4f797a418a47ddc3",
      "parents": [
        "68866e425be2ef2664aa5c691bb3ab789736acf5"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jun 07 17:48:35 2011 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jun 08 15:11:31 2011 +1000"
      },
      "message": "MD: possible typo\n\nMake message a bit clearer by s/blocks/k/\n\nI chose \u0027k\u0027 vs \u0027kiB\u0027 or \u0027kB\u0027 because it is what is used earlier in the\nmessage.  \u0027k\u0027 may be a bit ambigous, but I think it\u0027s better than \"blocks\"\nwhich normally means 512, but means 1024 in MD.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "68866e425be2ef2664aa5c691bb3ab789736acf5",
      "tree": "03cc5c452dcf70228a467031ae3f1989755cd1c1",
      "parents": [
        "629acb6abac0ef217ee579e14084af2ce7381dbc"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@f14.redhat.com",
        "time": "Wed Jun 08 15:10:08 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jun 08 15:10:08 2011 +1000"
      },
      "message": "MD: no sync IO while suspended\n\nDisallow resync I/O while the RAID array is suspended.\n\nRecovery, resync, and metadata I/O should not be allowed while a device is\nsuspended.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "629acb6abac0ef217ee579e14084af2ce7381dbc",
      "tree": "75963147cec3ff2e16aa775d103cb41706e503b0",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@f14.redhat.com",
        "time": "Wed Jun 08 15:10:08 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jun 08 15:10:08 2011 +1000"
      },
      "message": "MD: no integrity register if no gendisk\n\nDon\u0027t attempt md_integrity_register if there is no gendisk struct available.\n\nWhen MD arrays are built via device-mapper, the gendisk structure is not\navailable via mddev.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "fa34ce73072f90ecd90dcc43f29d82e70e5f8676",
      "tree": "26f9c986da4433fa8ed00a1685e34709997474b2",
      "parents": [
        "5f43ba2950414dc0abf4ac44c397d88069056746"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:13 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:13 2011 +0100"
      },
      "message": "dm kcopyd: return client directly and not through a pointer\n\nReturn client directly from dm_kcopyd_client_create, not through a\nparameter, making it consistent with dm_io_client_create.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5f43ba2950414dc0abf4ac44c397d88069056746",
      "tree": "f80df9947ef30f965d9c33e649d1856f1e47220f",
      "parents": [
        "bda8efec5c706a672e0714d341a342e811f0262a"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:11 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:11 2011 +0100"
      },
      "message": "dm kcopyd: reserve fewer pages\n\nReserve just the minimum of pages needed to process one job.\n\nBecause we allocate pages from page allocator, we don\u0027t need to reserve\na large number of pages.  The maximum job size is SUB_JOB_SIZE and we\ncalculate the number of reserved pages based on this.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "bda8efec5c706a672e0714d341a342e811f0262a",
      "tree": "7daf7b505723f5ed2767353dc3fe53b939c46d87",
      "parents": [
        "d04714580f12379fcf7a0f799e86c92b96dd4e1f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:09 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:09 2011 +0100"
      },
      "message": "dm io: use fixed initial mempool size\n\nReplace the arbitrary calculation of an initial io struct mempool size\nwith a constant.\n\nThe code calculated the number of reserved structures based on the request\nsize and used a \"magic\" multiplication constant of 4.  This patch changes\nit to reserve a fixed number - itself still chosen quite arbitrarily.\nFurther testing might show if there is a better number to choose.\n\nNote that if there is no memory pressure, we can still allocate an\narbitrary number of \"struct io\" structures.  One structure is enough to\nprocess the whole request.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d04714580f12379fcf7a0f799e86c92b96dd4e1f",
      "tree": "3a6c152dcb0d062dadfecd9fb8b1866a0fdbfce5",
      "parents": [
        "f99b55eec795bd0fd577ab3ca06f3acfbe3b1ab1"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:07 2011 +0100"
      },
      "message": "dm kcopyd: alloc pages from the main page allocator\n\nThis patch changes dm-kcopyd so that it allocates pages from the main\npage allocator with __GFP_NOWARN | __GFP_NORETRY flags (so that it can\nfail in case of memory pressure). If the allocation fails, dm-kcopyd\nallocates pages from its own reserve.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f99b55eec795bd0fd577ab3ca06f3acfbe3b1ab1",
      "tree": "b4e4b21bf5477895ac7f8b8b998847dd8c0686aa",
      "parents": [
        "4cc1b4cffd187a5c5d6264c8d766c49b3c57fb05"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:04 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:04 2011 +0100"
      },
      "message": "dm kcopyd: add gfp parm to alloc_pl\n\nIntroduce a parameter for gfp flags to alloc_pl() for use in following\npatches.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4cc1b4cffd187a5c5d6264c8d766c49b3c57fb05",
      "tree": "98b550b7e3c00fcdf20cc8b0a9c5b9478cb45ac9",
      "parents": [
        "c6ea41fbbe08f270a8edef99dc369faf809d1bd6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:02 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:02 2011 +0100"
      },
      "message": "dm kcopyd: remove superfluous page allocation spinlock\n\nRemove the spinlock protecting the pages allocation.  The spinlock is only\ntaken on initialization or from single-threaded workqueue.  Therefore, the\nspinlock is useless.\n\nThe spinlock is taken in kcopyd_get_pages and kcopyd_put_pages.\n\nkcopyd_get_pages is only called from run_pages_job, which is only\ncalled from process_jobs called from do_work.\n\nkcopyd_put_pages is called from client_alloc_pages (which is initialization\nfunction) or from run_complete_job. run_complete_job is only called from\nprocess_jobs called from do_work.\n\nAnother spinlock, kc-\u003ejob_lock is taken each time someone pushes or pops\nsome work for the worker thread.  Once we take kc-\u003ejob_lock, we\nguarantee that any written memory is visible to the other CPUs.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c6ea41fbbe08f270a8edef99dc369faf809d1bd6",
      "tree": "34210fcc635c029939d43b3b556314210c7171c5",
      "parents": [
        "a705a34a565a5445bf731bd8006d51ea4d2b4236"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:00 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:00 2011 +0100"
      },
      "message": "dm kcopyd: preallocate sub jobs to avoid deadlock\n\nThere\u0027s a possible theoretical deadlock in dm-kcopyd because multiple\nallocations from the same mempool are required to finish a request.\nAvoid this by preallocating sub jobs.\n\nThere is a mempool of 512 entries. Each request requires up to 9\nentries from the mempool. If we have at least 57 concurrent requests\nrunning, the mempool may overflow and mempool allocations may start\nblocking until another entry is freed to the mempool. Because the same\nthread is used to free entries to the mempool and allocate entries from\nthe mempool, this may result in a deadlock.\n\nThis patch changes it so that one mempool entry contains all 9 \"struct\nkcopyd_job\" required to fulfill the whole request. The allocation is\ndone only once in dm_kcopyd_copy and no further mempool allocations are\ndone during request processing.\n\nIf dm_kcopyd_copy is not run in the completion thread, this\nimplementation is deadlock-free.\n\nMIN_JOBS needs reducing accordingly and we\u0027ve chosen to reduce it\nfurther to 8.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a705a34a565a5445bf731bd8006d51ea4d2b4236",
      "tree": "84d4761ff62398110a44e630085bc43a97bae805",
      "parents": [
        "6f13f6fba76edc7d0e7580c5deee829d59a41b2f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:02:58 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:02:58 2011 +0100"
      },
      "message": "dm kcopyd: avoid pointless job splitting\n\nDon\u0027t split SUB_JOB_SIZE jobs\n\nIf the job size equals SUB_JOB_SIZE, there is no point in splitting it.\nSplitting it just unnecessarily wastes time, because the split job size\nis SUB_JOB_SIZE too.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f13f6fba76edc7d0e7580c5deee829d59a41b2f",
      "tree": "f192d41174ac3f97cfec5f8f20ad6021a524b10b",
      "parents": [
        "f4808ca99a203f20b4475601748e44b25a65bdec"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sun May 29 13:02:55 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:02:55 2011 +0100"
      },
      "message": "dm mpath: do not fail paths after integrity errors\n\nIntegrity errors need to be passed to the owner of the integrity\nmetadata for processing. Consequently EILSEQ should be passed up the\nstack.\n\nCc: stable@kernel.org\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f4808ca99a203f20b4475601748e44b25a65bdec",
      "tree": "442641730674c130ec228c626b94606ad4f2e3c7",
      "parents": [
        "4c2593270133708698d4b8cea2dab469479ad13b"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Sun May 29 13:02:52 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:02:52 2011 +0100"
      },
      "message": "dm table: reject devices without request fns\n\nThis patch adds a check that a block device has a request function\ndefined before it is used.  Otherwise, misconfiguration can cause an oops.\n\nBecause we are allowing devices with zero size e.g. an offline multipath\ndevice as in commit 2cd54d9bedb79a97f014e86c0da393416b264eb3\n(\"dm: allow offline devices\") there needs to be an additional check\nto ensure devices are initialised.  Some block devices, like a loop\ndevice without a backing file, exist but have no request function.\n\nReproducer is trivial: dm-mirror on unbound loop device\n(no backing file on loop devices)\n\ndmsetup create x --table \"0 8 mirror core 2 8 sync 2 /dev/loop0 0 /dev/loop1 0\"\n\nand mirror resync will immediatelly cause OOps.\n\nBUG: unable to handle kernel NULL pointer dereference at   (null)\n ? generic_make_request+0x2bd/0x590\n ? kmem_cache_alloc+0xad/0x190\n submit_bio+0x53/0xe0\n ? bio_add_page+0x3b/0x50\n dispatch_io+0x1ca/0x210 [dm_mod]\n ? read_callback+0x0/0xd0 [dm_mirror]\n dm_io+0xbb/0x290 [dm_mod]\n do_mirror+0x1e0/0x748 [dm_mirror]\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReported-by: Zdenek Kabelac \u003czkabelac@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": "4c2593270133708698d4b8cea2dab469479ad13b",
      "tree": "f408edef9145b2f9553cbb2142347fc79023c4ff",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sun May 29 12:52:55 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 12:52:55 2011 +0100"
      },
      "message": "dm table: allow targets to support discards internally\n\nPermit a target to support discards regardless of whether or not all its\nunderlying devices do.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "57d19e80f459dd845fb3cfeba8e6df8471bac142",
      "tree": "8254766715720228db3d50f1ef3c7fe003c06d65",
      "parents": [
        "ee9ec4f82049c678373a611ce20ac67fe9ad836e",
        "e64851f5a0ad6ec991f74ebb3108c35aa0323d5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  b43: fix comment typo reqest -\u003e request\n  Haavard Skinnemoen has left Atmel\n  cris: typo in mach-fs Makefile\n  Kconfig: fix copy/paste-ism for dell-wmi-aio driver\n  doc: timers-howto: fix a typo (\"unsgined\")\n  perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c\n  md, raid5: Fix spelling error in comment (\u0027Ofcourse\u0027 --\u003e \u0027Of course\u0027).\n  treewide: fix a few typos in comments\n  regulator: change debug statement be consistent with the style of the rest\n  Revert \"arm: mach-u300/gpio: Fix mem_region resource size miscalculations\"\n  audit: acquire creds selectively to reduce atomic op overhead\n  rtlwifi: don\u0027t touch with treewide double semicolon removal\n  treewide: cleanup continuations and remove logging message whitespace\n  ath9k_hw: don\u0027t touch with treewide double semicolon removal\n  include/linux/leds-regulator.h: fix syntax in example code\n  tty: fix typo in descripton of tty_termios_encode_baud_rate\n  xtensa: remove obsolete BKL kernel option from defconfig\n  m68k: fix comment typo \u0027occcured\u0027\n  arch:Kconfig.locks Remove unused config option.\n  treewide: remove extra semicolons\n  ...\n"
    },
    {
      "commit": "b098636cf04c89db4036fedc778da0acc666ad1a",
      "tree": "11a970bdc482b4e5cb2211eefb9a71ae34355bd3",
      "parents": [
        "ab9d47e990c12c11cc95ed1247a3782234a7e33a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 15:52:21 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 15:52:21 2011 +1000"
      },
      "message": "md: allow resync_start to be set while an array is active.\n\nThe sysfs attribute \u0027resync_start\u0027 (known internally as recovery_cp),\nrecords where a resync is up to.  A value of 0 means the array is\nnot known to be in-sync at all.  A value of MaxSector means the array\nis believed to be fully in-sync.\n\nWhen the size of member devices of an array (RAID1,RAID4/5/6) is\nincreased, the array can be increased to match.  This process sets\nresync_start to the old end-of-device offset so that the new part of\nthe array gets resynced.\n\nHowever with RAID1 (and RAID6) a resync is not technically necessary\nand may be undesirable.  So it would be good if the implied resync\nafter the array is resized could be avoided.\n\nSo: change \u0027resync_start\u0027 so the value can be changed while the array\nis active, and as a precaution only allow it to be changed while\nresync/recovery is \u0027frozen\u0027.  Changing it once resync has started is\nnot going to be useful anyway.\n\nThis allows the array to be resized without a resync by:\n  write \u0027frozen\u0027 to \u0027sync_action\u0027\n  write new size to \u0027component_size\u0027 (this will set resync_start)\n  write \u0027none\u0027 to \u0027resync_start\u0027\n  write \u0027idle\u0027 to \u0027sync_action\u0027.\n\nAlso slightly improve some tests on recovery_cp when resizing\nraid1/raid5.  Now that an arbitrary value could be set we should be\nmore careful in our tests.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ab9d47e990c12c11cc95ed1247a3782234a7e33a",
      "tree": "7c82006d01e903e79d23d3b289a35effed4eacde",
      "parents": [
        "f17ed07c853d5d772515f565a7fc68f9098d6d69"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:54:41 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:54:41 2011 +1000"
      },
      "message": "md/raid10:  reformat some loops with less indenting.\n\nWhen a loop ends with an \u0027if\u0027 with a large body, it is neater\nto make the if \u0027continue\u0027 on the inverse condition, and then\nthe body is indented less.\n\nApply this pattern 3 times, and wrap some other long lines.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f17ed07c853d5d772515f565a7fc68f9098d6d69",
      "tree": "1dd382524ef7d0d3c47c238a0042d0aa7dd386c8",
      "parents": [
        "a8830bcaf3206f15e29efcd9e04becd96a0722e9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:54:32 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:54:32 2011 +1000"
      },
      "message": "md/raid10: remove unused variable.\n\nThis variable \u0027disk\u0027 is never used - how odd.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a8830bcaf3206f15e29efcd9e04becd96a0722e9",
      "tree": "7952a9dcc4ecfda07d706095ac3a9f9d6973837b",
      "parents": [
        "7c4e06ff2b6a4c09638551dfde76f37f9fca5c0c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:54:19 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:54:19 2011 +1000"
      },
      "message": "md/raid10: make more use of \u0027slot\u0027 in raid10d.\n\nNow that we have a \u0027slot\u0027 variable, make better use of it to simplify\nsome code a little.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7c4e06ff2b6a4c09638551dfde76f37f9fca5c0c",
      "tree": "15ae0b698fc2d5347a776215c3bb6faaf45b2b41",
      "parents": [
        "af6d7b760c7547c1a410a333bdb24daed24e1043"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:53:17 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:53:17 2011 +1000"
      },
      "message": "md/raid10: some tidying up in fix_read_error\n\nCurrently the rdev on which a read error happened could be removed\nbefore we perform the fix_error handling.  This requires extra tests\nfor NULL.\n\nSo delay the rdev_dec_pending call until after the call to\nfix_read_error so that we can be sure that the rdev still exists.\n\nThis allows an \u0027if\u0027 clause to be removed so the body gets re-indented\nback one level.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "af6d7b760c7547c1a410a333bdb24daed24e1043",
      "tree": "5789fa005f94911bc6a92a6cb8700b8025a3adc4",
      "parents": [
        "7ca78d57d11a91bc93b35342fa58647b85bedeb1"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:51:19 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:51:19 2011 +1000"
      },
      "message": "md/raid1: improve handling of pages allocated for write-behind.\n\nThe current handling and freeing of these pages is a bit fragile.\nWe only keep the list of allocated pages in each bio, so we need to\nstill have a valid bio when freeing the pages, which is a bit clumsy.\n\nSo simply store the allocated page list in the r1_bio so it can easily\nbe found and freed when we are finished with the r1_bio.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7ca78d57d11a91bc93b35342fa58647b85bedeb1",
      "tree": "398f2f91e5252b45872506763ae3677e1f35c026",
      "parents": [
        "78d7f5f726deb562a51126603f2dc5d00990b223"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:50:37 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:50:37 2011 +1000"
      },
      "message": "md/raid1: try fix_sync_read_error before process_checks.\n\nIf we get a read error during resync/recovery we current repeat with\nsingle-page reads to find out just where the error is, and possibly\nread each page from a different device.\n\nWith check/repair we don\u0027t currently do that, we just fail.\nHowever it is possible that while all devices fail on the large 64K\nread, we might be able to satisfy each 4K from one device or another.\n\nSo call fix_sync_read_error before process_checks to maximise the\nchance of finding good data and writing it out to the devices with\nread errors.\n\nFor this to work, we need to set the \u0027uptodate\u0027 flags properly after\nfix_sync_read_error has succeeded.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "78d7f5f726deb562a51126603f2dc5d00990b223",
      "tree": "eb4255cb674028b8709c4542e2a490db3264754f",
      "parents": [
        "a68e58703575b9c03d610a818e0241564fc17f68"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:48:56 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:48:56 2011 +1000"
      },
      "message": "md/raid1: tidy up new functions: process_checks and fix_sync_read_error.\n\nThese changes are mostly cosmetic:\n\n1/ change mddev-\u003eraid_disks to conf-\u003eraid_disks because the later is\n   technically safer, though in current practice it doesn\u0027t matter in\n   this particular context.\n2/ Rearrange two for / if loops to have an early \u0027continue\u0027 so the\n   body of the \u0027if\u0027 doesn\u0027t need to be indented so much.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a68e58703575b9c03d610a818e0241564fc17f68",
      "tree": "f60a433b20a4e297d010a23775e78493687c160b",
      "parents": [
        "6f8d0c77cef5849433dd7beb0bd97e573cc4a6a3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:40:44 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:40:44 2011 +1000"
      },
      "message": "md/raid1: split out two sub-functions from sync_request_write\n\nsync_request_write is too big and too deep.\nSo split out two self-contains bits of functionality into separate\nfunction.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6f8d0c77cef5849433dd7beb0bd97e573cc4a6a3",
      "tree": "42d3a4438d035dfd792758c40cbd39317166b1c8",
      "parents": [
        "92f861a72a273ed038c1e22ff9775456353e3009"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:38:44 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:38:44 2011 +1000"
      },
      "message": "md: make error_handler functions more uniform and correct.\n\n- there is no need to test_bit Faulty, as that was already done in\n  md_error which is the only caller of these functions.\n- MD_CHANGE_DEVS should be set *after* faulty is set to ensure\n  metadata is updated correctly.\n- spinlock should be held while updating -\u003edegraded.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n\n  \n"
    },
    {
      "commit": "92f861a72a273ed038c1e22ff9775456353e3009",
      "tree": "df1ad40ffa987814aafaf0dfe27b8f67285ddd5a",
      "parents": [
        "76073054c95b12af6bd0cc9b9462a265b45ba38f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:38:02 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:38:02 2011 +1000"
      },
      "message": "md/multipath: discard -\u003eworking_disks in favour of -\u003edegraded\n\nconf-\u003eworking_disks duplicates information already available\nin mddev-\u003edegraded.\nSo remove working_disks.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "76073054c95b12af6bd0cc9b9462a265b45ba38f",
      "tree": "78f830289dd8bb5337a7d3efa442ae44abd4dbab",
      "parents": [
        "56d9912106b0974ffb6dd264c80c7e816677e998"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:34:56 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:34:56 2011 +1000"
      },
      "message": "md/raid1: clean up read_balance.\n\nread_balance has two loops which both look for a \u0027best\u0027\ndevice based on slightly different criteria.\nThis is clumsy and makes is hard to add extra criteria.\n\nSo replace it all with a single loop that combines everything.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "56d9912106b0974ffb6dd264c80c7e816677e998",
      "tree": "eef9208cffd7bc4501ca57250a4b884a04aa116b",
      "parents": [
        "8258c53208d7a9b7207e7d4dae36d2ea384cb278"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:27:03 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:27:03 2011 +1000"
      },
      "message": "md: simplify raid10 read_balance\n\nraid10 read balance has two different loop for looking through\npossible devices to chose the best.\nCollapse those into one loop and generally make the code more\nreadable.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "8258c53208d7a9b7207e7d4dae36d2ea384cb278",
      "tree": "8ae5e67cde859e16dcc663c49269d025b9f6ce4b",
      "parents": [
        "bedd86b7773fd97f0d708cc0c371c8963ba7ba9a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:26:30 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:26:30 2011 +1000"
      },
      "message": "md/bitmap: fix saving of events_cleared and other state.\n\nIf a bitmap is found to be \u0027stale\u0027 the events_cleared value\nis set to match \u0027events\u0027.\nHowever if the array is degraded this does not get stored on disk.\nThis can subsequently lead to incorrect behaviour.\n\nSo change bitmap_update_sb to always update events_cleared in the\nsuperblock from the known events_cleared.\nFor neatness also set -\u003estate from -\u003eflags.\nThis requires updating -\u003estate whenever we update -\u003eflags, which makes\nsense anyway.\n\nThis is suitable for any active -stable release.\n\ncc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "bedd86b7773fd97f0d708cc0c371c8963ba7ba9a",
      "tree": "acc508209cdc418fcfe9a1493915dfa88c22bc29",
      "parents": [
        "b0140891a8cea36469f58d23859e599b1122bd37"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:26:20 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:26:20 2011 +1000"
      },
      "message": "md: reject a re-add request that cannot be honoured.\n\nThe \u0027add_new_disk\u0027 ioctl can be used to add a device either as a\nspare, or as an active disk that just needs to be resynced based on\nwrite-intent-bitmap information (re-add)\n\nCurrently if a re-add is requested but fails we add as a spare\ninstead.  This makes it impossible for user-space to check for\nfailure.\n\nSo change to require that a re-add attempt will either succeed or\ncompletely fail.  User-space can then decide what to do next.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "b0140891a8cea36469f58d23859e599b1122bd37",
      "tree": "01f378d9964c1d24683a3c42bfd06b1da7d985b6",
      "parents": [
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue May 10 17:49:01 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed May 11 14:26:17 2011 +1000"
      },
      "message": "md: Fix race when creating a new md device.\n\nThere is a race when creating an md device by opening /dev/mdXX.\n\nIf two processes do this at much the same time they will follow the\ncall path\n  __blkdev_get -\u003e get_gendisk -\u003e kobj_lookup\n\nThe first will call\n  -\u003e md_probe -\u003e md_alloc -\u003e add_disk -\u003e blk_register_region\n\nand the race happens when the second gets to kobj_lookup after\nadd_disk has called blk_register_region but before it returns to\nmd_alloc.\n\nIn the case the second will not call md_probe (as the probe is already\ndone) but will get a handle on the gendisk, return to __blkdev_get\nwhich will then call md_open (via the -\u003eopen) pointer.\n\nAs mddev-\u003egendisk hasn\u0027t been set yet, md_open will think something is\nwrong an return with ERESTARTSYS.\n\nThis can loop endlessly while the first thread makes no progress\nthrough add_disk.  Nothing is blocking it, but due to scheduler\nbehaviour it doesn\u0027t get a turn.\nSo this is essentially a live-lock.\n\nWe fix this by simply moving the assignment to mddev-\u003egendisk before\nthe call the add_disk() so md_open doesn\u0027t get confused.\nAlso move blk_queue_flush earlier because add_disk should be as late\nas possible.\n\nTo make sure that md_open doesn\u0027t complete until md_alloc has done all\nthat is needed, we take mddev-\u003eopen_mutex during the last part of\nmd_alloc.  md_open will wait for this.\n\nThis can cause a lock-up on boot so Cc:ing for stable.\nFor 2.6.36 and earlier a different patch will be needed as the\n\u0027blk_queue_flush\u0027 call isn\u0027t there.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReported-by: Thomas Jarosch \u003cthomas.jarosch@intra2net.com\u003e\nTested-by: Thomas Jarosch \u003cthomas.jarosch@intra2net.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "aeb878b0967550bb56606ae21172bdcbd6afe052",
      "tree": "10758d84093fbb7c1a379fb4317b573966fc20af",
      "parents": [
        "70f23fd66bc821a0e99647f70a809e277cc93c4c"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Apr 10 18:06:17 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 10 10:18:36 2011 +0200"
      },
      "message": "md, raid5: Fix spelling error in comment (\u0027Ofcourse\u0027 --\u003e \u0027Of course\u0027).\n\nThere\u0027s a small typo in a comment in drivers/md/raid5.c - \u0027Of course\u0027 is\nmisspelled as \u0027Ofcourse\u0027. This patch fixes the spelling error.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "50da08409654e036c4c964a473567a61a654cb83"
}
