)]}'
{
  "log": [
    {
      "commit": "fb060f3d95d29c385063151c8a09faa4d1a02f2f",
      "tree": "91806e31b0b68b68280a1ce738c41ae9679454b4",
      "parents": [
        "cc9fdb9cdde35aafad3b11ce74e244f5da7ac3c0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 31 10:05:34 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Aug 15 08:10:08 2012 -0700"
      },
      "message": "md/raid1: don\u0027t abort a resync on the first badblock.\n\ncommit b7219ccb33aa0df9949a60c68b5e9f712615e56f upstream.\n\nIf a resync of a RAID1 array with 2 devices finds a known bad block\none device it will neither read from, or write to, that device for\nthis block offset.\nSo there will be one read_target (The other device) and zero write\ntargets.\nThis condition causes md/raid1 to abort the resync assuming that it\nhas finished - without known bad blocks this would be true.\n\nWhen there are no write targets because of the presence of bad blocks\nwe should only skip over the area covered by the bad block.\nRAID10 already gets this right, raid1 doesn\u0027t.  Or didn\u0027t.\n\nAs this can cause a \u0027sync\u0027 to abort early and appear to have succeeded\nit could lead to some data corruption, so it suitable for -stable.\n\nReported-by: Alexander Lyakas \u003calex.bolshoy@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e73b09d8f258df200adb6383c77c38c31f6f4baa",
      "tree": "5d67fdbc9e8636156681f69bf46d61a5ab6a1e45",
      "parents": [
        "b4ce163953a4baab2341ba42386904a7199d11af"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Jul 27 15:08:05 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 09 08:31:40 2012 -0700"
      },
      "message": "dm thin: fix memory leak in process_prepared_mapping error paths\n\ncommit 905386f82d08f66726912f303f3e6605248c60a3 upstream.\n\nFix memory leak in process_prepared_mapping by always freeing\nthe dm_thin_new_mapping structs from the mapping_pool mempool on\nthe error paths.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\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@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b4ce163953a4baab2341ba42386904a7199d11af",
      "tree": "9ce488763642d813f454f09fb819f15bee700a90",
      "parents": [
        "27cd8f51344dcf4799c7a092c1797402b833126a"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Jul 27 15:07:57 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 09 08:31:40 2012 -0700"
      },
      "message": "dm thin: reduce endio_hook pool size\n\ncommit 7768ed33ccdc02801c4483fc5682dc66ace14aea upstream.\n\nReduce the slab size used for the dm_thin_endio_hook mempool.\n\nAllocation has been seen to fail on machines with smaller amounts\nof memory due to fragmentation.\n\n  lvm: page allocation failure. order:5, mode:0xd0\n  device-mapper: table: 253:38: thin-pool: Error creating pool\u0027s endio_hook mempool\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "5a4db9ee4f44658077a11c71d78a17573016fc0e",
      "tree": "d871a7d3fda912e1d892857c329c997af28ece5f",
      "parents": [
        "91aafba4414743c24c6d06ccca75113e4abd13a8"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Jul 20 14:25:07 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:21 2012 -0700"
      },
      "message": "dm raid1: set discard_zeroes_data_unsupported\n\ncommit 7c8d3a42fe1c58a7e8fd3f6a013e7d7b474ff931 upstream.\n\nWe can\u0027t guarantee that REQ_DISCARD on dm-mirror zeroes the data even if\nthe underlying disks support zero on discard.  So this patch sets\nti-\u003ediscard_zeroes_data_unsupported.\n\nFor example, if the mirror is in the process of resynchronizing, it may\nhappen that kcopyd reads a piece of data, then discard is sent on the\nsame area and then kcopyd writes the piece of data to another leg.\nConsequently, the data is not zeroed.\n\nThe flag was made available by commit 983c7db347db8ce2d8453fd1d89b7a4bb6920d56\n(dm crypt: always disable discard_zeroes_data).\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@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "91aafba4414743c24c6d06ccca75113e4abd13a8",
      "tree": "3417d1b51ff8d4a218ccf24485b7237d829073ac",
      "parents": [
        "5b8bbc39d5678179f2fd4ee2e09005d8f277834c"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Jul 20 14:25:03 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:21 2012 -0700"
      },
      "message": "dm raid1: fix crash with mirror recovery and discard\n\ncommit 751f188dd5ab95b3f2b5f2f467c38aae5a2877eb upstream.\n\nThis patch fixes a crash when a discard request is sent during mirror\nrecovery.\n\nFirstly, some background.  Generally, the following sequence happens during\nmirror synchronization:\n- function do_recovery is called\n- do_recovery calls dm_rh_recovery_prepare\n- dm_rh_recovery_prepare uses a semaphore to limit the number\n  simultaneously recovered regions (by default the semaphore value is 1,\n  so only one region at a time is recovered)\n- dm_rh_recovery_prepare calls __rh_recovery_prepare,\n  __rh_recovery_prepare asks the log driver for the next region to\n  recover. Then, it sets the region state to DM_RH_RECOVERING. If there\n  are no pending I/Os on this region, the region is added to\n  quiesced_regions list. If there are pending I/Os, the region is not\n  added to any list. It is added to the quiesced_regions list later (by\n  dm_rh_dec function) when all I/Os finish.\n- when the region is on quiesced_regions list, there are no I/Os in\n  flight on this region. The region is popped from the list in\n  dm_rh_recovery_start function. Then, a kcopyd job is started in the\n  recover function.\n- when the kcopyd job finishes, recovery_complete is called. It calls\n  dm_rh_recovery_end. dm_rh_recovery_end adds the region to\n  recovered_regions or failed_recovered_regions list (depending on\n  whether the copy operation was successful or not).\n\nThe above mechanism assumes that if the region is in DM_RH_RECOVERING\nstate, no new I/Os are started on this region. When I/O is started,\ndm_rh_inc_pending is called, which increases reg-\u003epending count. When\nI/O is finished, dm_rh_dec is called. It decreases reg-\u003epending count.\nIf the count is zero and the region was in DM_RH_RECOVERING state,\ndm_rh_dec adds it to the quiesced_regions list.\n\nConsequently, if we call dm_rh_inc_pending/dm_rh_dec while the region is\nin DM_RH_RECOVERING state, it could be added to quiesced_regions list\nmultiple times or it could be added to this list when kcopyd is copying\ndata (it is assumed that the region is not on any list while kcopyd does\nits jobs). This results in memory corruption and crash.\n\nThere already exist bypasses for REQ_FLUSH requests: REQ_FLUSH requests\ndo not belong to any region, so they are always added to the sync list\nin do_writes. dm_rh_inc_pending does not increase count for REQ_FLUSH\nrequests. In mirror_end_io, dm_rh_dec is never called for REQ_FLUSH\nrequests. These bypasses avoid the crash possibility described above.\n\nThese bypasses were improperly implemented for REQ_DISCARD when\nthe mirror target gained discard support in commit\n5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4 (dm raid1: support discard).\n\nIn do_writes, REQ_DISCARD requests is always added to the sync queue and\nimmediately dispatched (even if the region is in DM_RH_RECOVERING).  However,\ndm_rh_inc and dm_rh_dec is called for REQ_DISCARD resusts.  So it violates the\nrule that no I/Os are started on DM_RH_RECOVERING regions, and causes the list\ncorruption described above.\n\nThis patch changes it so that REQ_DISCARD requests follow the same path\nas REQ_FLUSH. This avoids the crash.\n\nReference: https://bugzilla.redhat.com/837607\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@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "5b8bbc39d5678179f2fd4ee2e09005d8f277834c",
      "tree": "184a8536462352210ce124ba0d8886b196ef2b41",
      "parents": [
        "08603bdd6b0b65248921c8be05febe574dd78905"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Jul 20 14:25:05 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:20 2012 -0700"
      },
      "message": "dm thin: do not send discards to shared blocks\n\ncommit 650d2a06b4fe1cc1d218c20e256650f68bf0ca31 upstream.\n\nWhen process_discard receives a partial discard that doesn\u0027t cover a\nfull block, it sends this discard down to that block. Unfortunately, the\nblock can be shared and the discard would corrupt the other snapshots\nsharing this block.\n\nThis patch detects block sharing and ends the discard with success when\nsending it to the shared block.\n\nThe above change means that if the device supports discard it can\u0027t be\nguaranteed that a discard request zeroes data. Therefore, we set\nti-\u003ediscard_zeroes_data_unsupported.\n\nThin target discard support with this bug arrived in commit\n104655fd4dcebd50068ef30253a001da72e3a081 (dm thin: support discards).\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d8ae4bb4a1c12f9cfb373f215e624a9f1fca0767",
      "tree": "669ac900707bb663af164e972eeef30b519a79c4",
      "parents": [
        "2ac8a0f58a8782ff8024404a579eee260e8b2010"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 19 15:59:18 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:17 2012 -0700"
      },
      "message": "md/raid1: close some possible races on write errors during resync\n\ncommit 58e94ae18478c08229626daece2fc108a4a23261 upstream.\n\ncommit 4367af556133723d0f443e14ca8170d9447317cb\n   md/raid1: clear bad-block record when write succeeds.\n\nAdded a \u0027reschedule_retry\u0027 call possibility at the end of\nend_sync_write, but didn\u0027t add matching code at the end of\nsync_request_write.  So if the writes complete very quickly, or\nscheduling makes it seem that way, then we can miss rescheduling\nthe request and the resync could hang.\n\nAlso commit 73d5c38a9536142e062c35997b044e89166e063b\n    md: avoid races when stopping resync.\n\nFix a race condition in this same code in end_sync_write but didn\u0027t\nmake the change in sync_request_write.\n\nThis patch updates sync_request_write to fix both of those.\nPatch is suitable for 3.1 and later kernels.\n\nReported-by: Alexander Lyakas \u003calex.bolshoy@gmail.com\u003e\nOriginal-version-by: Alexander Lyakas \u003calex.bolshoy@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2ac8a0f58a8782ff8024404a579eee260e8b2010",
      "tree": "b3712f056d64c6a4b1ce7b506fd96d2d59ba6896",
      "parents": [
        "1c8f63c2758096c3b6425f4ecb274901151d6f17"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jul 19 15:59:18 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:17 2012 -0700"
      },
      "message": "md: avoid crash when stopping md array races with closing other open fds.\n\ncommit a05b7ea03d72f36edb0cec05e8893803335c61a0 upstream.\n\nmd will refuse to stop an array if any other fd (or mounted fs) is\nusing it.\nWhen any fs is unmounted of when the last open fd is closed all\npending IO will be flushed (e.g. sync_blockdev call in __blkdev_put)\nso there will be no pending IO to worry about when the array is\nstopped.\n\nHowever in order to send the STOP_ARRAY ioctl to stop the array one\nmust first get and open fd on the block device.\nIf some fd is being used to write to the block device and it is closed\nafter mdadm open the block device, but before mdadm issues the\nSTOP_ARRAY ioctl, then there will be no last-close on the md device so\n__blkdev_put will not call sync_blockdev.\n\nIf this happens, then IO can still be in-flight while md tears down\nthe array and bad things can happen (use-after-free and subsequent\nhavoc).\n\nSo in the case where do_md_stop is being called from an open file\ndescriptor, call sync_block after taking the mutex to ensure there\nwill be no new openers.\n\nThis is needed when setting a read-write device to read-only too.\n\nReported-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e301f7b1dbbb0af6dcb8ed10c800fa95bb34917a",
      "tree": "c583d4f8919432e04060582becd7af01f6d109d5",
      "parents": [
        "a3a13c9974160030550ae28b3fa2c1ea8992b9c5"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Jul 09 11:34:13 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 08:58:55 2012 -0700"
      },
      "message": "md/raid1: fix use-after-free bug in RAID1 data-check code.\n\ncommit 2d4f4f3384d4ef4f7c571448e803a1ce721113d5 upstream.\n\nThis bug has been present ever since data-check was introduce\nin 2.6.16.  However it would only fire if a data-check were\ndone on a degraded array, which was only possible if the array\nhas 3 or more devices.  This is certainly possible, but is quite\nuncommon.\n\nSince hot-replace was added in 3.3 it can happen more often as\nthe same condition can arise if not all possible replacements are\npresent.\n\nThe problem is that as soon as we submit the last read request, the\n\u0027r1_bio\u0027 structure could be freed at any time, so we really should\nstop looking at it.  If the last device is being read from we will\nstop looking at it.  However if the last device is not due to be read\nfrom, we will still check the bio pointer in the r1_bio, but the\nr1_bio might already be free.\n\nSo use the read_targets counter to make sure we stop looking for bios\nto submit as soon as we have submitted them all.\n\nThis fix is suitable for any -stable kernel since 2.6.16.\n\nReported-by: Arnold Schulz \u003carnysch@gmx.net\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d3f940223c31cffd977864cdc13c69e89f03ce55",
      "tree": "09ba2e45102876e10f8bc9bb1f04a689193fbbc8",
      "parents": [
        "0c4ad5cc8c01f62fe5211b5ce9563c27f795a4ab"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Tue Jun 12 08:31:10 2012 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:43 2012 -0700"
      },
      "message": "md/raid5: Do not add data_offset before call to is_badblock\n\ncommit 6c0544e255dd6582a9899572e120fb55d9f672a4 upstream.\n\nIn chunk_aligned_read() we are adding data_offset before calling\nis_badblock.  But is_badblock also adds data_offset, so that is bad.\n\nSo move the addition of data_offset to after the call to\nis_badblock.\n\nThis bug was introduced by commit 31c176ecdf3563140e639\n     md/raid5: avoid reading from known bad blocks.\nwhich first appeared in 3.0.  So that patch is suitable for any\n-stable kernel from 3.0.y onwards.  However it will need minor\nrevision for most of those (as the comment didn\u0027t appear until\nrecently).\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n[bwh: Backported to 3.2: ignored missing comment]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "5bbbd747918d241b41f3220ff26323d7ed943c52",
      "tree": "b465bd87040429da89b324935074c8e3fc90a9d7",
      "parents": [
        "c412589f74ab4f1e30bb25b685fe6d95f2befd4d"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Tue Jul 03 15:57:19 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:41 2012 -0700"
      },
      "message": "raid5: delayed stripe fix\n\ncommit fab363b5ff502d1b39ddcfec04271f5858d9f26e upstream.\n\nThere isn\u0027t locking setting STRIPE_DELAYED and STRIPE_PREREAD_ACTIVE bits, but\nthe two bits have relationship. A delayed stripe can be moved to hold list only\nwhen preread active stripe count is below IO_THRESHOLD. If a stripe has both\nthe bits set, such stripe will be in delayed list and preread count not 0,\nwhich will make such stripe never leave delayed list.\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "6d442d8f7e1a6920aad3d3f3ea544f6f8e6898b8",
      "tree": "bd5a572130cb49bba9a456ccb7340e4b1534e5ee",
      "parents": [
        "7723bfa90d8a1f75f41ade1a13b9b32c9255b15c"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Jul 03 12:55:37 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:26 2012 -0700"
      },
      "message": "dm persistent data: fix allocation failure in space map checker init\n\ncommit b0239faaf87c38bb419c9264bf20817438ddc3a9 upstream.\n\nIf CONFIG_DM_DEBUG_SPACE_MAPS is enabled and memory is fragmented and a\nsufficiently-large metadata device is used in a thin pool then the space\nmap checker will fail to allocate the memory it requires.\n\nSwitch from kmalloc to vmalloc to allow larger virtually contiguous\nallocations for the space map checker\u0027s internal count arrays.\n\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\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@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7723bfa90d8a1f75f41ade1a13b9b32c9255b15c",
      "tree": "4e671f0460e5909c24e1c0e6c9a43ac079c086b1",
      "parents": [
        "672c65731d62930439b91ff8a160830085d42a51"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Jul 03 12:55:35 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:26 2012 -0700"
      },
      "message": "dm persistent data: handle space map checker creation failure\n\ncommit 62662303e7f590fdfbb0070ab820a0ad4267c119 upstream.\n\nIf CONFIG_DM_DEBUG_SPACE_MAPS is enabled and dm_sm_checker_create()\nfails, dm_tm_create_internal() would still return success even though it\ncleaned up all resources it was supposed to have created.  This will\nlead to a kernel crash:\n\ngeneral protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC\n...\nRIP: 0010:[\u003cffffffff81593659\u003e]  [\u003cffffffff81593659\u003e] dm_bufio_get_block_size+0x9/0x20\nCall Trace:\n  [\u003cffffffff81599bae\u003e] dm_bm_block_size+0xe/0x10\n  [\u003cffffffff8159b8b8\u003e] sm_ll_init+0x78/0xd0\n  [\u003cffffffff8159c1a6\u003e] sm_ll_new_disk+0x16/0xa0\n  [\u003cffffffff8159c98e\u003e] dm_sm_disk_create+0xfe/0x160\n  [\u003cffffffff815abf6e\u003e] dm_pool_metadata_open+0x16e/0x6a0\n  [\u003cffffffff815aa010\u003e] pool_ctr+0x3f0/0x900\n  [\u003cffffffff8158d565\u003e] dm_table_add_target+0x195/0x450\n  [\u003cffffffff815904c4\u003e] table_load+0xe4/0x330\n  [\u003cffffffff815917ea\u003e] ctl_ioctl+0x15a/0x2c0\n  [\u003cffffffff81591963\u003e] dm_ctl_ioctl+0x13/0x20\n  [\u003cffffffff8116a4f8\u003e] do_vfs_ioctl+0x98/0x560\n  [\u003cffffffff8116aa51\u003e] sys_ioctl+0x91/0xa0\n  [\u003cffffffff81869f52\u003e] system_call_fastpath+0x16/0x1b\n\nFix the space map checker code to return an appropriate ERR_PTR and have\ndm_sm_disk_create() and dm_tm_create_internal() check for it with\nIS_ERR.\n\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\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@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "672c65731d62930439b91ff8a160830085d42a51",
      "tree": "ec07304750f68c74ffcdafbe9e82cfec24e657d1",
      "parents": [
        "a712c8097b28c4c4f705db4102c0eed117806162"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Jul 03 12:55:33 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:26 2012 -0700"
      },
      "message": "dm persistent data: fix shadow_info_leak on dm_tm_destroy\n\ncommit 25d7cd6faa7ae6ed2565617c3ee2500ccb8a9f7f upstream.\n\nCleanup the shadow table before destroying the transaction manager.\n\nReference: leak was identified with kmemleak when running\ntest_discard_random_sectors in the thinp-test-suite.\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@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8d9369807370331cebf3e237b95ecce068af80f1",
      "tree": "45d0c283ffd7f058e28a17d6b55e0a8a3d567502",
      "parents": [
        "65c3f18b9032f7237fc74403ce3a92176eaebd8c"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Tue Jul 03 12:11:54 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:25 2012 -0700"
      },
      "message": "md/raid5: In ops_run_io, inc nr_pending before calling md_wait_for_blocked_rdev\n\ncommit 1850753d2e6d9ca7856581ca5d3cf09521e6a5d7 upstream.\n\nIn ops_run_io(), the call to md_wait_for_blocked_rdev will decrement\nnr_pending so we lose the reference we hold on the rdev.\nSo atomic_inc it first to maintain the reference.\n\nThis bug was introduced by commit  73e92e51b7969ef5477d\n    md/raid5.  Don\u0027t write to known bad block on doubtful devices.\n\nwhich appeared in 3.0, so patch is suitable for stable kernels since\nthen.\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "65c3f18b9032f7237fc74403ce3a92176eaebd8c",
      "tree": "2088abe208befd572ef07a2f41b5330f1d6a0dfb",
      "parents": [
        "04e0f69d135f6cf10534282fc09cf3efd6973c5b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 03 15:55:33 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:25 2012 -0700"
      },
      "message": "md/raid10: fix failure when trying to repair a read error.\n\ncommit 055d3747dbf00ce85c6872ecca4d466638e80c22 upstream.\n\ncommit 58c54fcca3bac5bf9290cfed31c76e4c4bfbabaf\n     md/raid10: handle further errors during fix_read_error better.\n\nin 3.1 added \"r10_sync_page_io\" which takes an IO size in sectors.\nBut we were passing the IO size in bytes!!!\nThis resulting in bio_add_page failing, and empty request being sent\ndown, and a consequent BUG_ON in scsi_lib.\n\n[fix missing space in error message at same time]\n\nThis fix is suitable for 3.1.y and later.\n\nReported-by: Christian Balzer \u003cchibi@gol.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "04e0f69d135f6cf10534282fc09cf3efd6973c5b",
      "tree": "a5d1d20670b6c24a78112446f51009aee13ed267",
      "parents": [
        "10ff23ae117665e886fed089cb5a2e015cd8b7b4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jul 03 10:37:30 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:25 2012 -0700"
      },
      "message": "md/raid10: Don\u0027t try to recovery unmatched (and unused) chunks.\n\ncommit fc448a18ae6219af9a73257b1fbcd009efab4a81 upstream.\n\nIf a RAID10 has an odd number of chunks - as might happen when there\nare an odd number of devices - the last chunk has no pair and so is\nnot mirrored.  We don\u0027t store data there, but when recovering the last\ndevice in an array we retry to recover that last chunk from a\nnon-existent location.  This results in an error, and the recovery\naborts.\n\nWhen we get to that last chunk we should just stop - there is nothing\nmore to do anyway.\n\nThis bug has been present since the introduction of RAID10, so the\npatch is appropriate for any -stable kernel.\n\nReported-by: Christian Balzer \u003cchibi@gol.com\u003e\nTested-by: Christian Balzer \u003cchibi@gol.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "584b886aee3aff5fe7eb21e30f779eb5cd1daa36",
      "tree": "61945a4b446196fd4e21cb0c5fe9d125d26fd1ea",
      "parents": [
        "cf9ab4c62be7837c2f007cd51ab3604ca0620070"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 31 15:39:11 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jun 10 00:36:18 2012 +0900"
      },
      "message": "md: raid1/raid10: fix problem with merge_bvec_fn\n\ncommit aba336bd1d46d6b0404b06f6915ed76150739057 upstream.\n\nThe new merge_bvec_fn which calls the corresponding function\nin subsidiary devices requires that mddev-\u003emerge_check_needed\nbe set if any child has a merge_bvec_fn.\n\nHowever were were only setting that when a device was hot-added,\nnot when a device was present from the start.\n\nThis bug was introduced in 3.4 so patch is suitable for 3.4.y\nkernels.  However that are conflicts in raid10.c so a separate\npatch will be needed for 3.4.y.\n\nReported-by: Sebastian Riemer \u003csebastian.riemer@profitbricks.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "51c75d344b36152159b19466964dab4ae1a19fcd",
      "tree": "8bb7efd135ee2ea268eb97d44f40dd869c6011e8",
      "parents": [
        "ab9094fa038106675b40dbb5ee78b60255d6c436"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Mon May 21 09:26:59 2012 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 01 15:18:19 2012 +0800"
      },
      "message": "md: using GFP_NOIO to allocate bio for flush request\n\ncommit b5e1b8cee7ad58a15d2fa79bcd7946acb592602d upstream.\n\nA flush request is usually issued in transaction commit code path, so\nusing GFP_KERNEL to allocate memory for flush request bio falls into\nthe classic deadlock issue.\n\nThis is suitable for any -stable kernel to which it applies as it\navoids a possible deadlock.\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b1dab2f0409c478fd2d9e227c2c018524eca9603",
      "tree": "9d2b29b9209c6e0036da295b7704452aa7d35e72",
      "parents": [
        "2f05af8b5943d5702ef555c91da93af99938be44",
        "f402693d06f32e746c6153e459c5fb064fa02741"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 18:22:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 18:22:45 2012 -0700"
      },
      "message": "Merge tag \u0027dm-3.4-fixes-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm\n\nPull a dm fix from Alasdair G Kergon:\n \"A fix to the thin provisioning userspace interface.\"\n\n* tag \u0027dm-3.4-fixes-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:\n  dm thin: fix table output when pool target disables discard passdown internally\n"
    },
    {
      "commit": "f402693d06f32e746c6153e459c5fb064fa02741",
      "tree": "c4cfcf2702b3e5a1e94e3c3b923b52c413e4325a",
      "parents": [
        "36be50515fe2aef61533b516fa2576a2c7fe7664"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 19 01:01:01 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 19 01:01:01 2012 +0100"
      },
      "message": "dm thin: fix table output when pool target disables discard passdown internally\n\nWhen the thin pool target clears the discard_passdown parameter\ninternally, it incorrectly changes the table line reported to userspace.\nThis breaks dumb string comparisons on these table lines in generic\nuserspace device-mapper library code and leads to tables being reloaded\nrepeatedly when nothing is actually meant to be changing.\n\nThis patch corrects this by no longer changing the table line when\ndiscard passdown was disabled.\n\nWe can still tell when discard passdown is overridden by looking for the\nmessage \"Discard unsupported by data device (sdX): Disabling discard passdown.\"\n\nThis automatic detection is also moved from the \u0027load\u0027 to the \u0027resume\u0027\nso that it is re-evaluated should the properties of underlying devices\nchange.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2f05af8b5943d5702ef555c91da93af99938be44",
      "tree": "dd5de3120fcfa21ac25e1ff96871b765d0104ed7",
      "parents": [
        "8394edf3710b124793d46c51942a6392b7b569a0",
        "b0d634d5683f0b186b242ce6a4f3b041edb8b956"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 16:19:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 18 16:19:59 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md\n\nPull one more md bugfix from NeilBrown:\n \"Fix bug in recent fix to RAID10.\n\n  Without this patch, recovery will crash\"\n\n* tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md:\n  md/raid10: fix transcription error in calc_sectors conversion.\n"
    },
    {
      "commit": "b0d634d5683f0b186b242ce6a4f3b041edb8b956",
      "tree": "6443dc130dcd45c78ca2878938464c418ea89c41",
      "parents": [
        "0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 19 09:01:13 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 19 09:01:13 2012 +1000"
      },
      "message": "md/raid10: fix transcription error in calc_sectors conversion.\n\nThe old code was\n\t\tsector_div(stride, fc);\nthe new code was\n\t\tsector_dir(size, conf-\u003enear_copies);\n\n\u0027size\u0027 is right (the stride various wasn\u0027t really needed), but\n\u0027fc\u0027 means \u0027far_copies\u0027, and that is an important difference.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e       \n"
    },
    {
      "commit": "36a1987cd891fa82d9981886c3abbbe82c428c0d",
      "tree": "26f2c1ebc2d0485de222f13ebf812456ee8a7cb8",
      "parents": [
        "31ae98359d26ff89b745c4f8094093cbf6ccbdc6",
        "0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 17 09:44:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 17 09:44:35 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md\n\nPull two md fixes from NeilBrown:\n \"One fixes a bug in the new raid10 resize code so is relevant to 3.4\n  only.\n\n  The other fixes a bug in the use of md by dm-raid, so is relevant to\n  any kernel with dm-raid support\"\n\n* tag \u0027md-3.4-fixes\u0027 of git://neil.brown.name/md:\n  MD: Add del_timer_sync to mddev_suspend (fix nasty panic)\n  md/raid10: set dev_sectors properly when resizing devices in array.\n"
    },
    {
      "commit": "0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9",
      "tree": "3d0b8c398c1eda38bac6d3dd6ac1b22b518d26b4",
      "parents": [
        "6508fdbf40a92fd7c19d32780ea33ce8e8362b93"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 16 04:06:14 2012 -0500"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 17 10:38:24 2012 +1000"
      },
      "message": "MD: Add del_timer_sync to mddev_suspend (fix nasty panic)\n\nUse del_timer_sync to remove timer before mddev_suspend finishes.\n\nWe don\u0027t want a timer going off after an mddev_suspend is called.  This is\nespecially true with device-mapper, since it can call the destructor function\nimmediately following a suspend.  This results in the removal (kfree) of the\nstructures upon which the timer depends - resulting in a very ugly panic.\nTherefore, we add a del_timer_sync to mddev_suspend to prevent this.\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6508fdbf40a92fd7c19d32780ea33ce8e8362b93",
      "tree": "f51e0e36459eeb2f4e7d94f3ff15ffc5ab12de7c",
      "parents": [
        "b16b1b6cd052acbacc0a15f934bca9b354534d48"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 17 10:08:45 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu May 17 10:08:45 2012 +1000"
      },
      "message": "md/raid10: set dev_sectors properly when resizing devices in array.\n\nraid10 stores dev_sectors in \u0027conf\u0027 separately from the one in\n\u0027mddev\u0027 because it can have a very significant effect on block\naddressing and so need to be updated carefully.\n\nHowever raid10_resize isn\u0027t updating it at all!\n\nTo update it correctly, we need to make sure it is a proper\nmultiple of the chunksize taking various details of the layout\nin to account.\nThis calculation is currently done in setup_conf.   So split it\nout from there and call it from raid10_resize as well.\nThen set conf-\u003edev_sectors properly.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4a873f53995cd551587ee4aad1e6f189a330ff36",
      "tree": "a1caacf532d6a32861399720ae2883396f443954",
      "parents": [
        "2eb429671a4b83ea34a1a722a4656bb14ce7c971",
        "062e55e3960062fc2fb62a7274b4c253003eba73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 12 12:57:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 12 12:57:01 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David S. Miller:\n\n 1) Since we do RCU lookups on ipv4 FIB entries, we have to test if the\n    entry is dead before returning it to our caller.\n\n 2) openvswitch locking and packet validation fixes from Ansis Atteka,\n    Jesse Gross, and Pravin B Shelar.\n\n 3) Fix PM resume locking in IGB driver, from Benjamin Poirier.\n\n 4) Fix VLAN header handling in vhost-net and macvtap, from Basil Gor.\n\n 5) Revert a bogus network namespace isolation change that was causing\n    regressions on S390 networking devices.\n\n 6) If bonding decides to process and handle a LACPDU frame, we\n    shouldn\u0027t bump the rx_dropped counter.  From Jiri Bohac.\n\n 7) Fix mis-calculation of available TX space in r8169 driver when doing\n    TSO, which can lead to crashes and/or hung device.  From Julien\n    Ducourthial.\n\n 8) SCTP does not validate cached routes properly in all cases, from\n    Nicolas Dichtel.\n\n 9) Link status interrupt needs to be handled in ks8851 driver, from\n    Stephen Boyd.\n\n10) Use capable(), not cap_raised(), in connector/userns netlink code.\n    From Eric W. Biederman via Andrew Morton.\n\n11) Fix pktgen OOPS on module unload, from Eric Dumazet.\n\n12) iwlwifi under-estimates SKB truesizes, also from Eric Dumazet.\n\n13) Cure division by zero in SFC driver, from Ben Hutchings.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)\n  ks8851: Update link status during link change interrupt\n  macvtap: restore vlan header on user read\n  vhost-net: fix handle_rx buffer size\n  bonding: don\u0027t increase rx_dropped after processing LACPDUs\n  connector/userns: replace netlink uses of cap_raised() with capable()\n  sctp: check cached dst before using it\n  pktgen: fix crash at module unload\n  Revert \"net: maintain namespace isolation between vlan and real device\"\n  ehea: fix losing of NEQ events when one event occurred early\n  igb: fix rtnl race in PM resume path\n  ipv4: Do not use dead fib_info entries.\n  r8169: fix unsigned int wraparound with TSO\n  sfc: Fix division by zero when using one RX channel and no SR-IOV\n  openvswitch: Validation of IPv6 set port action uses IPv4 header\n  net: compare_ether_addr[_64bits]() has no ordering\n  cdc_ether: Ignore bogus union descriptor for RNDIS devices\n  bnx2x: bug fix when loading after SAN boot\n  e1000: Silence sparse warnings by correcting type\n  igb, ixgbe: netdev_tx_reset_queue incorrectly called from tx init path\n  openvswitch: Release rtnl_lock if ovs_vport_cmd_build_info() failed.\n  ...\n"
    },
    {
      "commit": "510193a2d3d2e03ae53b95c0ae4f33cdff02cbf8",
      "tree": "7d1a5c7b9c8bb19fef2d28e6ec84c5f0e400be61",
      "parents": [
        "7cab8bf1601d38fd73a0a4ea40cc4892b26907cc"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 12 01:43:21 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:21 2012 +0100"
      },
      "message": "dm mpath: check if scsi_dh module already loaded before trying to load\n\nIf the requested scsi_dh module is already loaded then skip\nrequest_module().\n\nMultipath table loads can hang in an unnecessary __request_module.\n\nReported-by: Ben Marzinski \u003cbmarzins@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7cab8bf1601d38fd73a0a4ea40cc4892b26907cc",
      "tree": "541c6f0757a6a806e49dad866b1bca5cffd55c3e",
      "parents": [
        "c3a0ce2eab76daf9516c817c3f227ea3f4549bd8"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:19 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:19 2012 +0100"
      },
      "message": "dm thin: correct module description\n\nRemove duplicate copy of string \"device-mapper\" (DM_NAME) from\nMODULE_DESCRIPTION.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c3a0ce2eab76daf9516c817c3f227ea3f4549bd8",
      "tree": "c2510a2e8a4a0f2c0eb66f736d1e1b70b53d0e27",
      "parents": [
        "03aaae7cdc71bc306888440b1f569d463e917b6d"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 12 01:43:16 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:16 2012 +0100"
      },
      "message": "dm thin: fix unprotected use of prepared_discards list\n\nFix two places in commit 104655fd4dce (\"dm thin: support discards\") that\ndidn\u0027t use pool-\u003elock to protect against concurrent changes to the\nprepared_discards list.\n\nWithout this fix, thin_endio() can race with process_discard(), leading\nto concurrent list_add()s that result in the processes locking up with\nan error like the following:\n\nWARNING: at lib/list_debug.c:32 __list_add+0x8f/0xa0()\n...\nlist_add corruption. next-\u003eprev should be prev (ffff880323b96140), but was ffff8801d2c48440. (next\u003dffff8801d2c485c0).\n...\nPid: 17205, comm: kworker/u:1 Tainted: G        W  O 3.4.0-rc3.snitm+ #1\nCall Trace:\n [\u003cffffffff8103ca1f\u003e] warn_slowpath_common+0x7f/0xc0\n [\u003cffffffff8103cb16\u003e] warn_slowpath_fmt+0x46/0x50\n [\u003cffffffffa04f6ce6\u003e] ? bio_detain+0xc6/0x210 [dm_thin_pool]\n [\u003cffffffff8124ff3f\u003e] __list_add+0x8f/0xa0\n [\u003cffffffffa04f70d2\u003e] process_discard+0x2a2/0x2d0 [dm_thin_pool]\n [\u003cffffffffa04f6a78\u003e] ? remap_and_issue+0x38/0x50 [dm_thin_pool]\n [\u003cffffffffa04f7c3b\u003e] process_deferred_bios+0x7b/0x230 [dm_thin_pool]\n [\u003cffffffffa04f7df0\u003e] ? process_deferred_bios+0x230/0x230 [dm_thin_pool]\n [\u003cffffffffa04f7e42\u003e] do_worker+0x52/0x60 [dm_thin_pool]\n [\u003cffffffff81056fa9\u003e] process_one_work+0x129/0x450\n [\u003cffffffff81059b9c\u003e] worker_thread+0x17c/0x3c0\n [\u003cffffffff81059a20\u003e] ? manage_workers+0x120/0x120\n [\u003cffffffff8105eabe\u003e] kthread+0x9e/0xb0\n [\u003cffffffff814ceda4\u003e] kernel_thread_helper+0x4/0x10\n [\u003cffffffff8105ea20\u003e] ? kthread_freezable_should_stop+0x70/0x70\n [\u003cffffffff814ceda0\u003e] ? gs_change+0x13/0x13\n---[ end trace 7e0a523bc5e52692 ]---\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "03aaae7cdc71bc306888440b1f569d463e917b6d",
      "tree": "0f26df484419ac7cfc73b0d13f94a4cf7b701781",
      "parents": [
        "d48b97b403d23f6df0b990cee652bdf9a52337a3"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sat May 12 01:43:12 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sat May 12 01:43:12 2012 +0100"
      },
      "message": "dm thin: reinstate missing mempool_free in cell_release_singleton\n\nFix a significant memory leak inadvertently introduced during\nsimplification of cell_release_singleton() in commit\n6f94a4c45a6f744383f9f695dde019998db3df55 (\"dm thin: fix stacked bi_next\nusage\").\n\nA cell\u0027s hlist_del() must be accompanied by a mempool_free().\nUse __cell_release() to do this, like before.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "38bf1953987c1735f3c9140fca762949a8cae507",
      "tree": "5596d88145226774633d3a2853b6d7caaeffa4f1",
      "parents": [
        "e0268868ba064980488fc8c194db3d8e9fb2959c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri May 04 11:34:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:21:39 2012 -0400"
      },
      "message": "connector/userns: replace netlink uses of cap_raised() with capable()\n\nIn 2009 Philip Reiser notied that a few users of netlink connector\ninterface needed a capability check and added the idiom\ncap_raised(nsp-\u003eeff_cap, CAP_SYS_ADMIN) to a few of them, on the premise\nthat netlink was asynchronous.\n\nIn 2011 Patrick McHardy noticed we were being silly because netlink is\nsynchronous and removed eff_cap from the netlink_skb_params and changed\nthe idiom to cap_raised(current_cap(), CAP_SYS_ADMIN).\n\nLooking at those spots with a fresh eye we should be calling\ncapable(CAP_SYS_ADMIN).  The only reason I can see for not calling capable\nis that it once appeared we were not in the same task as the caller which\nwould have made calling capable() impossible.\n\nIn the initial user_namespace the only difference between between\ncap_raised(current_cap(), CAP_SYS_ADMIN) and capable(CAP_SYS_ADMIN) are a\nfew sanity checks and the fact that capable(CAP_SYS_ADMIN) sets\nPF_SUPERPRIV if we use the capability.\n\nSince we are going to be using root privilege setting PF_SUPERPRIV seems\nthe right thing to do.\n\nThe motivation for this that patch is that in a child user namespace\ncap_raised(current_cap(),...) tests your capabilities with respect to that\nchild user namespace not capabilities in the initial user namespace and\nthus will allow processes that should be unprivielged to use the kernel\nservices that are only protected with cap_raised(current_cap(),..).\n\nTo fix possible user_namespace issues and to just clean up the code\nreplace cap_raised(current_cap(), CAP_SYS_ADMIN) with\ncapable(CAP_SYS_ADMIN).\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b16b1b6cd052acbacc0a15f934bca9b354534d48",
      "tree": "ba5b2e72e04a18a4bd83429f089d16637b9a6343",
      "parents": [
        "69964ea4c7b68c9399f7977aa5b9aa6539a6a98a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri May 04 17:03:18 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri May 04 17:03:18 2012 +1000"
      },
      "message": "md/bitmap: fix calculation of \u0027chunks\u0027 - missing shift.\n\ncommit 61a0d80c \"md/bitmap: discard CHUNK_BLOCK_SHIFT macro\"\nreplaced CHUNK_BLOCK_RATIO() by the same text that was\nreplacing CHUNK_BLOCK_SHIFT() - which is clearly wrong.\n\nThe result is that \u0027chunks\u0027 is often too small by 1,\nwhich can sometimes result in a crash (not sure how).\n\nSo use the correct replacement, and get rid of CHUNK_BLOCK_RATIO\nwhich is no longe used.\n\nReported-by: Karl Newman \u003csiliconfiend@gmail.com\u003e\nTested-by: Karl Newman \u003csiliconfiend@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "30b8aa9172dfeaac6d77897c67ee9f9fc574cdbb",
      "tree": "d950c723e17399fefd104c5eddcf514d7f3c240a",
      "parents": [
        "ed209584c38fb74b7eecc03e5b1bfe674e591bd8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:16 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:16 2012 +1000"
      },
      "message": "md: fix possible corruption of array metadata on shutdown.\n\ncommit c744a65c1e2d59acc54333ce8\n  md: don\u0027t set md arrays to readonly on shutdown.\n\nremoved the possibility of a \u0027BUG\u0027 when data is written to an array\nthat has just been switched to read-only, but also introduced the\npossibility that the array metadata could be corrupted.\n\nIf, when md_notify_reboot gets the mddev lock, the array is\nin a state where it is assembled but hasn\u0027t been started (as can\nhappen if the personality module is not available, or in other unusual\nsituations), then incorrect metadata will be written out making it\nimpossible to re-assemble the array.\n\nSo only call __md_stop_writes() if the array has actually been\nactivated.\n\nThis patch is needed for any stable kernel which has had the above\ncommit applied.\n\nCc: stable@vger.kernel.org\nReported-by: Christoph Nelles \u003cevilazrael@evilazrael.de\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ed209584c38fb74b7eecc03e5b1bfe674e591bd8",
      "tree": "a232bb4fbf3a2e143ad57dfa3acad92418c5b12c",
      "parents": [
        "a9ad8526bb1af0741a5c0e01155dac08e7bdde60"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:14 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:14 2012 +1000"
      },
      "message": "md: don\u0027t call -\u003eadd_disk unless there is good reason.\n\nCommit 7bfec5f35c68121e7b18\n\n   md/raid5: If there is a spare and a want_replacement device, start replacement.\n\ncause md_check_recovery to call -\u003eadd_disk much more often.\nInstead of only when the array is degraded, it is now called whenever\nmd_check_recovery finds anything useful to do, which includes\nupdating the metadata for clean\u003c-\u003edirty transition.\nThis causes unnecessary work, and causes info messages from -\u003eadd_disk\nto be reported much too often.\n\nSo refine md_check_recovery to only do any actual recovery checking\n(including -\u003eadd_disk) if MD_RECOVERY_NEEDED is set.\n\nThis fix is suitable for 3.3.y:\n\nCc: stable@vger.kernel.org\nReported-by: Jan Ceuleers \u003cjan.ceuleers@computer.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a9ad8526bb1af0741a5c0e01155dac08e7bdde60",
      "tree": "4e82b35b644eab0aacc6c7d16b2cb7794f106cb5",
      "parents": [
        "afbaa90b80b1ec66e5137cc3824746bfdf559b18"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Apr 24 10:23:13 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 24 10:23:13 2012 +1000"
      },
      "message": "DM RAID: Use safe version of rdev_for_each\n\nFix segfault caused by using rdev_for_each instead of rdev_for_each_safe\n\nCommit dafb20fa34320a472deb7442f25a0c086e0feb33 mistakenly replaced a safe\niterator with an unsafe one when making some macro changes.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "afbaa90b80b1ec66e5137cc3824746bfdf559b18",
      "tree": "8c0307e41849eef28146343efc4fed75f83a30f1",
      "parents": [
        "f4380a915823dbed0bf8e3cf502ebcf2b7c7f833"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 16:05:06 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 16:05:06 2012 +1000"
      },
      "message": "md/bitmap: prevent bitmap_daemon_work running while initialising bitmap\n\nIf a bitmap is added while the array is active, it is possible\nfor bitmap_daemon_work to run while the bitmap is being\ninitialised.\nThis is particularly a problem if bitmap_daemon_work sees\nbitmap-\u003efilemap as non-NULL before it has been filled in properly.\nSo hold bitmap_info.mutex while filling in -\u003efilemap\nto prevent problems.\n\nThis patch is suitable for any -stable kernel, though it might not\napply cleanly before about 3.1.\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f4380a915823dbed0bf8e3cf502ebcf2b7c7f833",
      "tree": "1326179e1f715f33495066b2fe4b99acf1bbdd96",
      "parents": [
        "9e41dd35b39c2cf40767332b8f914d7afe25cc40"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Thu Apr 12 16:04:47 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 16:04:47 2012 +1000"
      },
      "message": "md/raid1,raid10: Fix calculation of \u0027vcnt\u0027 when processing error recovery.\n\nIf r1bio-\u003esectors % 8 !\u003d 0,then the memcmp and a later\nmemcpy will omit the last bio_vec.\n\nThis is suitable for any stable kernel since 3.1 when bad-block\nmanagement was introduced.\n\nCc: stable@vger.kernel.org\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9e41dd35b39c2cf40767332b8f914d7afe25cc40",
      "tree": "b694a4d27b3fd7beb1881d5ad993303fe7309c59",
      "parents": [
        "5020ad7d143ccfcf8149974096220d59e5572120"
      ],
      "author": {
        "name": "Andrei Warkentin",
        "email": "andrey.warkentin@gmail.com",
        "time": "Thu Apr 12 15:55:21 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Apr 12 15:55:21 2012 +1000"
      },
      "message": "MD: Bitmap version cleanup.\n\nbitmap_new_disk_sb() would still create V3 bitmap superblock\nwith host-endian layout.\n\nPerhaps I\u0027m confused, but shouldn\u0027t bitmap_new_disk_sb() be\ncreating a V4 bitmap superblock instead, that is portable,\nas per comment in bitmap.h?\n\nSigned-off-by: Andrei Warkentin \u003candrey.warkentin@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5020ad7d143ccfcf8149974096220d59e5572120",
      "tree": "0124b6866ecd63b3a8913a6661e1d96699d60b71",
      "parents": [
        "c6d2e084c7411f61f2b446d94989e5aaf9879b0f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 01:39:05 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:39:23 2012 +1000"
      },
      "message": "md/raid1,raid10: don\u0027t compare excess byte during consistency check.\n\nWhen comparing two pages read from different legs of a mirror, only\ncompare the bytes that were read, not the whole page.\n\nIn most cases we read a whole page, but in some cases with\nbad blocks or odd sizes devices we might read fewer than that.\n\nThis bug has been present \"forever\" but at worst it might cause\na report of two many mismatches and generate a little bit\nextra resync IO, so there is no need to back-port to -stable\nkernels.\n\nReported-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c6d2e084c7411f61f2b446d94989e5aaf9879b0f",
      "tree": "521616d7bd6ff7eb38217bed1b81c5960fa2023d",
      "parents": [
        "a42f9d83b5c05dc6e678a1f0cd9767502c2c58de"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 01:16:59 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:37:38 2012 +1000"
      },
      "message": "md/raid5: Fix a bug about judging if the operation is syncing or replacing\n\nWhen create a raid5 using assume-clean and echo check or repair to\nsync_action.Then component disks did not operated IO but the raid\ncheck/resync faster than normal.\nBecause the judgement in function analyse_stripe():\n\t\tif (do_recovery ||\n\t\t    sh-\u003esector \u003e\u003d conf-\u003emddev-\u003erecovery_cp)\n\t\t\ts-\u003esyncing \u003d 1;\n\t\telse\n\t\t\ts-\u003ereplacing \u003d 1;\nWhen check or repair,the recovery_cp \u003d\u003d MaxSectore,so syncing equal zero\nnot one.\n\nThis bug was introduced by commit 9a3e1101b827\n    md/raid5:  detect and handle replacements during recovery.\nso this patch is suitable for 3.3-stable.\n\nCc: stable@vger.kernel.org\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a42f9d83b5c05dc6e678a1f0cd9767502c2c58de",
      "tree": "e1864a59287f1441a4b016938efea5ca30a57df1",
      "parents": [
        "24b961f811a3e790a9b93604d2594bfb6cce4fa4"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 01:04:19 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:37:33 2012 +1000"
      },
      "message": "md/raid1:Remove unnecessary rcu_dereference(conf-\u003emirrors[i].rdev).\n\nBecause rde-\u003enr_pending \u003e 0,so can not remove this disk.\nAnd in any case, we aren\u0027t holding rcu_read_lock()\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "24b961f811a3e790a9b93604d2594bfb6cce4fa4",
      "tree": "8cde643f6d3d142538d8e2499e65b368f5320bcc",
      "parents": [
        "18b9837ea0dc3cf844c6c4196871ce91d047bddb"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "Jes.Sorensen@redhat.com",
        "time": "Sun Apr 01 23:48:38 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:37:26 2012 +1000"
      },
      "message": "md: Avoid OOPS when reshaping raid1 to raid0\n\nraid1 arrays do not have the notion of chunk size. Calculate the\nlargest chunk sector size we can use to avoid a divide by zero OOPS\nwhen aligning the size of the new array to the chunk size.\n\nSigned-off-by: Jes Sorensen \u003cJes.Sorensen@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "18b9837ea0dc3cf844c6c4196871ce91d047bddb",
      "tree": "de8be80b767d144405aeeaf7238c723f575b4b40",
      "parents": [
        "5220ea1e640869e70f894837678315c878c651fd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Apr 01 23:48:38 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 03 15:36:17 2012 +1000"
      },
      "message": "md/raid5: fix handling of bad blocks during recovery.\n\n1/ We can only treat a known-bad-block like a read-error if we\n   have the data that belongs in that block.  So fix that test.\n\n2/ If we cannot recovery a stripe due to insufficient data,\n   don\u0027t tell \"md_done_sync\" that the sync failed unless we really\n   did fail something.  If we successfully record bad blocks,\n   that is success.\n\nReported-by: \"majianpeng\" \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5220ea1e640869e70f894837678315c878c651fd",
      "tree": "b18af9d438b634e81bd5d87c2323ae58d52eaf73",
      "parents": [
        "0366ef847581d692e197b88825867ca9ee00e358"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 09:48:38 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 09:48:38 2012 +1000"
      },
      "message": "md/raid1: If md_integrity_register() failed,run() must free the mem\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "0366ef847581d692e197b88825867ca9ee00e358",
      "tree": "7faec66efc6e77b24dd349a42c7dabefbc1964be",
      "parents": [
        "98d5561bfbc3c7a53d6abc1812a2bd5344d36fa3"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "message": "md/raid0: If md_integrity_register() fails, raid0_run() must free the mem.\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "98d5561bfbc3c7a53d6abc1812a2bd5344d36fa3",
      "tree": "6397046f8dc7a82986ebd7e442491dc118d1a850",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Apr 02 09:48:37 2012 +1000"
      },
      "message": "md/linear: If md_integrity_register() fails, linear_run() must free the mem.\n\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a4ffc152198efba2ed9e6eac0eb97f17bfebce85",
      "tree": "1901c86e3f4dbfcc3bd753888951a51430f0cde2",
      "parents": [
        "a66cc28f53a7e9679dedb2bc66ddb0e0c6bdd0ee"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:43:38 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:43:38 2012 +0100"
      },
      "message": "dm: add verity target\n\nThis device-mapper target creates a read-only device that transparently\nvalidates the data on one underlying device against a pre-generated tree\nof cryptographic checksums stored on a second device.\n\nTwo checksum device formats are supported: version 0 which is already\nshipping in Chromium OS and version 1 which incorporates some\nimprovements.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nSigned-off-by: Elly Jones \u003cellyjones@chromium.org\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\nCc: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a66cc28f53a7e9679dedb2bc66ddb0e0c6bdd0ee",
      "tree": "0d1037562bd8a47f6e9d31d7ed56e24c7aa98c66",
      "parents": [
        "67e2e2b281812b5caf4923a38aadc6b89e34f064"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "message": "dm bufio: prefetch\n\nThis patch introduces a new function dm_bufio_prefetch. It prefetches\nthe specified range of blocks into dm-bufio cache without waiting\nfor i/o completion.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "67e2e2b281812b5caf4923a38aadc6b89e34f064",
      "tree": "c04255840de5e70a0aa2880d1f1c8bfe1b2e7817",
      "parents": [
        "104655fd4dcebd50068ef30253a001da72e3a081"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:29 2012 +0100"
      },
      "message": "dm thin: add pool target flags to control discard\n\nAdd dm thin target arguments to control discard support.\n\nignore_discard: Disables discard support\n\nno_discard_passdown: Don\u0027t pass discards down to the underlying data\ndevice, but just remove the mapping within the thin provisioning target.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "104655fd4dcebd50068ef30253a001da72e3a081",
      "tree": "ce4cc70f3ecf643d1c63948f902bc135b17750c7",
      "parents": [
        "eb2aa48d4eb7aee63cba201bf47641dad3e92250"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: support discards\n\nSupport discards in the thin target.\n\nOn discard the corresponding mapping(s) are removed from the thin\ndevice.  If the associated block(s) are no longer shared the discard\nis passed to the underlying device.\n\nAll bios other than discards now have an associated deferred_entry\nthat is saved to the \u0027all_io_entry\u0027 in endio_hook.  When non-discard\nIO completes and associated mappings are quiesced any discards that\nwere deferred, via ds_add_work() in process_discard(), will be queued\nfor processing by the worker thread.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n\ndrivers/md/dm-thin.c |  173 ++++++++++++++++++++++++++++++++++++++++++++++----\n drivers/md/dm-thin.c |  172 ++++++++++++++++++++++++++++++++++++++++++++++-----\n 1 file changed, 158 insertions(+), 14 deletions(-)\n"
    },
    {
      "commit": "eb2aa48d4eb7aee63cba201bf47641dad3e92250",
      "tree": "3e160010319f6c4eb30770d07d6fb089955f5704",
      "parents": [
        "6efd6e83092cd4a7532270bc843de90bb93f6683"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: prepare to support discard\n\nThis patch contains the ground work needed for dm-thin to support discard.\n\n  - Adds endio function that replaces shared_read_endio.\n\n  - Introduce an explicit \u0027quiesced\u0027 flag into the new_mapping structure.\n    Before, this was implicitly indicated by m-\u003elist being empty.\n\n  - The map_info-\u003eptr remains constant for the duration of a bio\u0027s trip\n    through the thin target.  Make it easier to reason about it.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6efd6e83092cd4a7532270bc843de90bb93f6683",
      "tree": "129b9de5d03a11f0bf02feb3743a10e4fe8561d5",
      "parents": [
        "2dd9c257fbc243aa76ee6db0bb8371f9f74fad2d"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: use dm_target_offset\n\nUse dm_target_offset wrapper instead of referencing the awkward ti-\u003ebegin\nexplicitly.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2dd9c257fbc243aa76ee6db0bb8371f9f74fad2d",
      "tree": "51c82de6e41b4f53f9d41dfe1211c4feba55dc6d",
      "parents": [
        "c4a69ecdb463a901b4645230613961e134e897cd"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: support read only external snapshot origins\n\nSupport the use of an external _read only_ device as an origin for a thin\ndevice.\n\nAny read to an unprovisioned area of the thin device will be passed\nthrough to the origin.  Writes trigger allocation of new blocks as\nusual.\n\nOne possible use case for this would be VM hosts that want to run\nguests on thinly-provisioned volumes but have the base image on another\ndevice (possibly shared between many VMs).\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c4a69ecdb463a901b4645230613961e134e897cd",
      "tree": "c53e0a569f3d390ea2a97f964225d5383c6401ec",
      "parents": [
        "71fd5ae25d88841c08d5bbea90c0f0a12ca05509"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:28 2012 +0100"
      },
      "message": "dm thin: relax hard limit on the maximum size of a metadata device\n\nThe thin metadata format can only make use of a device that is \u003c\u003d\nTHIN_METADATA_MAX_SECTORS (currently 15.9375 GB).  Therefore, there is no\npractical benefit to using a larger device.\n\nHowever, it may be that other factors impose a certain granularity for\nthe space that is allocated to a device (E.g. lvm2 can impose a coarse\ngranularity through the use of large, \u003e\u003d 1 GB, physical extents).\n\nRather than reject a larger metadata device, during thin-pool device\nconstruction, switch to allowing it but issue a warning if a device\nlarger than THIN_METADATA_MAX_SECTORS_WARNING (16 GB) is\nprovided.  Any space over 15.9375 GB will not be used.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "71fd5ae25d88841c08d5bbea90c0f0a12ca05509",
      "tree": "763ec9657bd25e4d42f1f6774faa65166364eede",
      "parents": [
        "905e51b39a5558706a6ed883fe104de3d417050b"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "message": "dm persistent data: remove space map ref_count entries if redundant\n\nSave space by removing entries from the space map ref_count tree if\nthey\u0027re no longer needed.\n\nRef counts are stored in two places: a bitmap if the ref_count is\nbelow 3, or a btree of uint32_t if 3 or above.\n\nWhen a ref_count that was above 3 drops below we can remove it from\nthe tree and save some metadata space.  This removal was commented out\nbefore because I was unsure why this was causing under-populated btree\nnodes.  Earlier patches have fixed this issue.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "905e51b39a5558706a6ed883fe104de3d417050b",
      "tree": "d8e1d9fcdba66942333f099618e6acc5be238538",
      "parents": [
        "31998ef19385c944600d9a981b96252f98204bee"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:27 2012 +0100"
      },
      "message": "dm thin: commit outstanding data every second\n\nCommit unwritten data every second to prevent too much building up.\n\nReleased blocks don\u0027t become available until after the next commit\n(for crash resilience).  Prior to this patch commits were only\ntriggered by a message to the target or a REQ_{FLUSH,FUA} bio.  This\nallowed far too big a position to build up.\n\nThe interval is hard-coded to 1 second.  This is a sensible setting.\nI\u0027m not making this user configurable, since there isn\u0027t much to be\ngained by tweaking this - and a lot lost by setting it far too high.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "31998ef19385c944600d9a981b96252f98204bee",
      "tree": "ab757b8d6e3d349cf42827354e594687dcf6c5c8",
      "parents": [
        "0447568fc51e0268e201f7086d2450cf986e0411"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "message": "dm: reject trailing characters in sccanf input\n\nDevice mapper uses sscanf to convert arguments to numbers. The problem is that\nthe way we use it ignores additional unmatched characters in the scanned string.\n\nFor example, this `if (sscanf(string, \"%d\", \u0026number) \u003d\u003d 1)\u0027 will match a number,\nbut also it will match number with some garbage appended, like \"123abc\".\n\nAs a result, device mapper accepts garbage after some numbers. For example\nthe command `dmsetup create vg1-new --table \"0 16384 linear 254:1bla 34816bla\"\u0027\nwill pass without an error.\n\nThis patch fixes all sscanf uses in device mapper. It appends \"%c\" with\na pointer to a dummy character variable to every sscanf statement.\n\nThe construct `if (sscanf(string, \"%d%c\", \u0026number, \u0026dummy) \u003d\u003d 1)\u0027 succeeds\nonly if string is a null-terminated number (optionally preceded by some\nwhitespace characters). If there is some character appended after the number,\nsscanf matches \"%c\", writes the character to the dummy variable and returns 2.\nWe check the return value for 1 and consequently reject numbers with some\ngarbage appended.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0447568fc51e0268e201f7086d2450cf986e0411",
      "tree": "879a6e4ae0b156f05487ac2eb058920e83a0285e",
      "parents": [
        "fef838cc1ac34e599c74888274506d76767f3098"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:26 2012 +0100"
      },
      "message": "dm raid: handle failed devices during start up\n\nThe dm-raid code currently fails to create a RAID array if any of the\nsuperblocks cannot be read.  This was an oversight as there is already\ncode to handle this case if the values (\u0027- -\u0027) were provided for the\nfailed array position.\n\nWith this patch, if a superblock cannot be read, the array position\u0027s\nfields are initialized as though \u0027- -\u0027 was set in the table.  That is,\nthe device is failed and the position should not be used, but if there\nis sufficient redundancy, the array should still be activated.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fef838cc1ac34e599c74888274506d76767f3098",
      "tree": "197179f2408018f66f5ca60b1c48bc4bea458072",
      "parents": [
        "a3aefb395e4f321c8b1314c88f1123624adcf743"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm thin metadata: pass correct space map to dm_sm_root_size\n\nFix a harmless typo.\n\nThe root is a chunk of data that gets written to the superblock.  This\ndata is used to recreate the space map when opening a metadata area.\nWe have two space maps; one tracking space on the metadata device and\none of the data device.  Both of these use the same format for their\nroot, so this typo was harmless.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a3aefb395e4f321c8b1314c88f1123624adcf743",
      "tree": "cedb3dbc643009cdba3c927b499e32e3247f7e5e",
      "parents": [
        "466891f9959b500e037836737c064a72f2bbe8cf"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm persistent data: remove redundant value_size arg from value_ptr\n\nNow that the value_size is held within every node of the btrees we can\nremove this argument from value_ptr().\n\nFor the last few months a BUG_ON has been checking this argument is\nthe same as that held in the node.  No issues were reported.  So this\nis a safe change.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "466891f9959b500e037836737c064a72f2bbe8cf",
      "tree": "d50448abe03d595fb5f00671ff7aec9a35e3cdb0",
      "parents": [
        "4d7b38b7d944a79da3793b6c92d38682f3905ac9"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm mpath: detect invalid map_context\n\nThe map_context pointer should always be set. However, we have reports\nthat upon requeuing it is not set correctly.  So add set and clear\nfunctions with a BUG_ON() to track the issue properly.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Hannes Reinecke \u003chare@suse.de\u003e\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Dave Wysochanski \u003cdwysocha@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4d7b38b7d944a79da3793b6c92d38682f3905ac9",
      "tree": "88f187c760c0dfd3cb8d7957a635254b3fcabd36",
      "parents": [
        "574ce07eb0014069f1da763c219bb30ea4c266ec"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:25 2012 +0100"
      },
      "message": "dm: clear bi_end_io on remapping failure\n\nAs a precaution, set bi_end_io to NULL when failing to remap.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "574ce07eb0014069f1da763c219bb30ea4c266ec",
      "tree": "f5f5543a30f2e2937cfd96dea28ae17f4b0c9544",
      "parents": [
        "fe878f34df89ad4af758f40bbec829807dc93a00"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm table: simplify call to free_devices\n\nfree_devices in dm_table.c already uses list_for_each(), so we don\u0027t\nneed to check if the list is empty.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fe878f34df89ad4af758f40bbec829807dc93a00",
      "tree": "eaa377c640fd595391491725ab477f29062374b1",
      "parents": [
        "035220b33d6865d81d5433600def53373cca7127"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm thin: correct comments\n\nRemove documentation for unimplemented \u0027trim\u0027 message.\n\nI\u0027d planned a \u0027trim\u0027 target message for shrinking thin devices, but\nthis is better handled via the discard ioctl.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "035220b33d6865d81d5433600def53373cca7127",
      "tree": "9f72ff60d07e171b79f996da0c463052201ef2fe",
      "parents": [
        "e0b215da8fde99b6a9d82ee4c3600ec223cc7959"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm raid: no longer experimental\n\nThe dm raid module (using md) is becoming the preferred way of creating long-lived\nmirrors through userspace LVM so remove the EXPERIMENTAL tag.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e0b215da8fde99b6a9d82ee4c3600ec223cc7959",
      "tree": "60a6d7fd27dddaf28a2ce42cc5ec444db0a5c6b5",
      "parents": [
        "854ecaad80223d3c3e32da3ca0ca66cd4a695085"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:24 2012 +0100"
      },
      "message": "dm uevent: no longer experimental\n\nDrop EXPERIMENTAL tag from dm-uevent.\n\nIt\u0027s not changed for a while and some userspace tools are relying upon it.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b0988900bae9ecf968a8a8d086a9eec671a9517a",
      "tree": "9dd34ec6f4563b78ac454f3691757dece46c1926",
      "parents": [
        "6f94a4c45a6f744383f9f695dde019998db3df55"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "message": "dm persistent data: fix btree rebalancing after remove\n\nWhen we remove an entry from a node we sometimes rebalance with it\u0027s\ntwo neighbours.  This wasn\u0027t being done correctly; in some cases\nentries have to move all the way from the right neighbour to the left\nneighbour, or vice versa.  This patch pretty much re-writes the\nbalancing code to fix it.\n\nThis code is barely used currently; only when you delete a thin\ndevice, and then only if you have hundreds of them in the same pool.\nOnce we have discard support, which removes mappings, this will be used\nmuch more heavily.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f94a4c45a6f744383f9f695dde019998db3df55",
      "tree": "7e4982a066935a2434780b5e34fb24fb15e533f0",
      "parents": [
        "72c6e7afc43e19f68a31dea204fc366624d6eee9"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:23 2012 +0100"
      },
      "message": "dm thin: fix stacked bi_next usage\n\nAvoid using the bi_next field for the holder of a cell when deferring\nbios because a stacked device below might change it.  Store the\nholder in a new field in struct cell instead.\n\nWhen a cell is created, the bio that triggered creation (the holder) was\nadded to the same bio list as subsequent bios.  In some cases we pass\nthis holder bio directly to devices underneath.  If those devices use\nthe bi_next field there will be trouble...\n\nThis also simplifies some code that had to work out which bio was the\nholder.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "72c6e7afc43e19f68a31dea204fc366624d6eee9",
      "tree": "888dfad9bcbcff78cf707e63b3c4389b589b8c4d",
      "parents": [
        "aeb2deae2660a1773c83d3c6e9e6575daa3855d6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "message": "dm crypt: add missing error handling\n\nAlways set io-\u003eerror to -EIO when an error is detected in dm-crypt.\n\nThere were cases where an error code would be set only if we finish\nprocessing the last sector. If there were other encryption operations in\nflight, the error would be ignored and bio would be returned with\nsuccess as if no error happened.\n\nThis bug is present in kcryptd_crypt_write_convert, kcryptd_crypt_read_convert\nand kcryptd_async_done.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: stable@kernel.org\nReviewed-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aeb2deae2660a1773c83d3c6e9e6575daa3855d6",
      "tree": "7bd2b85fa918285dbc6e857993fb3c20ec108554",
      "parents": [
        "aadbe266f2f89ccc68b52f4effc7b3a8b29521ef"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "message": "dm crypt: fix mempool deadlock\n\nThis patch fixes a possible deadlock in dm-crypt\u0027s mempool use.\n\nCurrently, dm-crypt reserves a mempool of MIN_BIO_PAGES reserved pages.\nIt allocates first MIN_BIO_PAGES with non-failing allocation (the allocation\ncannot fail and waits until the mempool is refilled). Further pages are\nallocated with different gfp flags that allow failing.\n\nBecause allocations may be done in parallel, this code can deadlock. Example:\nThere are two processes, each tries to allocate MIN_BIO_PAGES and the processes\nrun simultaneously.\nIt may end up in a situation where each process allocates (MIN_BIO_PAGES / 2)\npages. The mempool is exhausted. Each process waits for more pages to be freed\nto the mempool, which never happens.\n\nTo avoid this deadlock scenario, this patch changes the code so that only\nthe first page is allocated with non-failing gfp mask. Allocation of further\npages may fail.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aadbe266f2f89ccc68b52f4effc7b3a8b29521ef",
      "tree": "94215da325017418a1420cebc7922ebfbebcfc69",
      "parents": [
        "437538267b672f9320833907f1b5acbb2605f4be"
      ],
      "author": {
        "name": "Andrei Warkentin",
        "email": "andrey.warkentin@gmail.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 28 18:41:22 2012 +0100"
      },
      "message": "dm exception store: fix init error path\n\nCall the correct exit function on failure in dm_exception_store_init.\n\nSigned-off-by: Andrei Warkentin \u003candrey.warkentin@gmail.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": "267d7b23dd62f6ec55e0fba777e456495c308fc7",
      "tree": "5c9fe0f07d5b87029b9c07eb003596c05d161a8f",
      "parents": [
        "28f23d1f3b6a6078312b6e9585e583cc7326fe22",
        "ecb178bb2b154a40cfae9fa4c42e62ccfa81ac6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:29:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:29:50 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4\u0027 of git://neil.brown.name/md\n\nPull md updates for 3.4 from Neil Brown:\n \"Mostly tidying up code in preparation for some bigger changes next\n  time.\n\n  A few bug fixes tagged for -stable.\n\n  Main functionality change is that some RAID10 arrays can now grow to\n  use extra space that may have been made available on the individual\n  devices.\"\n\nFixed up trivial conflicts with the k[un]map_atomic() cleanups in\ndrivers/md/bitmap.c.\n\n* tag \u0027md-3.4\u0027 of git://neil.brown.name/md: (22 commits)\n  md: Add judgement bb-\u003eunacked_exist in function md_ack_all_badblocks().\n  md: fix clearing of the \u0027changed\u0027 flags for the bad blocks list.\n  md/bitmap: discard CHUNK_BLOCK_SHIFT macro\n  md/bitmap: remove unnecessary indirection when allocating.\n  md/bitmap: remove some pointless locking.\n  md/bitmap: change a \u0027goto\u0027 to a normal \u0027if\u0027 construct.\n  md/bitmap: move printing of bitmap status to bitmap.c\n  md/bitmap: remove some unused noise from bitmap.h\n  md/raid10 - support resizing some RAID10 arrays.\n  md/raid1: handle merge_bvec_fn in member devices.\n  md/raid10: handle merge_bvec_fn in member devices.\n  md: add proper merge_bvec handling to RAID0 and Linear.\n  md: tidy up rdev_for_each usage.\n  md/raid1,raid10: avoid deadlock during resync/recovery.\n  md/bitmap: ensure to load bitmap when creating via sysfs.\n  md: don\u0027t set md arrays to readonly on shutdown.\n  md: allow re-add to failed arrays.\n  md/raid5: use atomic_dec_return() instead of atomic_dec() and atomic_read().\n  md: Use existed macros instead of numbers\n  md/raid5: removed unused \u0027added_devices\u0027 variable.\n  ...\n"
    },
    {
      "commit": "9f3938346a5c1fa504647670edb5fea5756cfb00",
      "tree": "7cf6d24d6b076c8db8571494984924cac03703a2",
      "parents": [
        "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
        "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull kmap_atomic cleanup from Cong Wang.\n\nIt\u0027s been in -next for a long time, and it gets rid of the (no longer\nused) second argument to k[un]map_atomic().\n\nFix up a few trivial conflicts in various drivers, and do an \"evil\nmerge\" to catch some new uses that have come in since Cong\u0027s tree.\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux: (59 commits)\n  feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n  highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n  drbd: remove the second argument of k[un]map_atomic()\n  zcache: remove the second argument of k[un]map_atomic()\n  gma500: remove the second argument of k[un]map_atomic()\n  dm: remove the second argument of k[un]map_atomic()\n  tomoyo: remove the second argument of k[un]map_atomic()\n  sunrpc: remove the second argument of k[un]map_atomic()\n  rds: remove the second argument of k[un]map_atomic()\n  net: remove the second argument of k[un]map_atomic()\n  mm: remove the second argument of k[un]map_atomic()\n  lib: remove the second argument of k[un]map_atomic()\n  power: remove the second argument of k[un]map_atomic()\n  kdb: remove the second argument of k[un]map_atomic()\n  udf: remove the second argument of k[un]map_atomic()\n  ubifs: remove the second argument of k[un]map_atomic()\n  squashfs: remove the second argument of k[un]map_atomic()\n  reiserfs: remove the second argument of k[un]map_atomic()\n  ocfs2: remove the second argument of k[un]map_atomic()\n  ntfs: remove the second argument of k[un]map_atomic()\n  ...\n"
    },
    {
      "commit": "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
      "tree": "7211df5704b743a7667159748c670a9744164482",
      "parents": [
        "d464c92b5234227c1698862a1906827e2e398ae0",
        "f1f996b66cc3908a8f5ffccc2ff41840e92f3b10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"It\u0027s indeed trivial -- mostly documentation updates and a bunch of\n  typo fixes from Masanari.\n\n  There are also several linux/version.h include removals from Jesper.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)\n  kcore: fix spelling in read_kcore() comment\n  constify struct pci_dev * in obvious cases\n  Revert \"char: Fix typo in viotape.c\"\n  init: fix wording error in mm_init comment\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  Revert \"power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c\"\n  writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header\n  writeback: fix typo in the writeback_control comment\n  Documentation: Fix multiple typo in Documentation\n  tpm_tis: fix tis_lock with respect to RCU\n  Revert \"media: Fix typo in mixer_drv.c and hdmi_drv.c\"\n  Doc: Update numastat.txt\n  qla4xxx: Add missing spaces to error messages\n  compiler.h: Fix typo\n  security: struct security_operations kerneldoc fix\n  Documentation: broken URL in libata.tmpl\n  Documentation: broken URL in filesystems.tmpl\n  mtd: simplify return logic in do_map_probe()\n  mm: fix comment typo of truncate_inode_pages_range\n  power: bq27x00: Fix typos in comment\n  ...\n"
    },
    {
      "commit": "c2e022cb654fa6595238dc52311a85e6444da1f7",
      "tree": "f3dba0008bb940e3b8c6fcd81b0f29004de06c1c",
      "parents": [
        "c58e0377d61e209600def7d4d9ae535ea94bc210"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Nov 28 13:26:02 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "dm: remove the second argument of k[un]map_atomic()\n\nAcked-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "b2f46e6882564897f6ea3ad904f0a65dc1c6cb3b",
      "tree": "e7c664de2956945c0c37b4895b134253196d006a",
      "parents": [
        "2a156d094d590e1cb946d1c353f1c1a89013f822"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Nov 28 13:25:44 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:18 2012 +0800"
      },
      "message": "md: remove the second argument of k[un]map_atomic()\n\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "ecb178bb2b154a40cfae9fa4c42e62ccfa81ac6b",
      "tree": "a3a6ff71d28069f6eef78a4f24f7f9c385a086a7",
      "parents": [
        "d0962936bff659d20522555b517582a2715fd23f"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Mon Mar 19 12:46:42 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:42 2012 +1100"
      },
      "message": "md: Add judgement bb-\u003eunacked_exist in function md_ack_all_badblocks().\n\nIf there are no unacked bad blocks, then there is no point searching\nfor them to acknowledge them.\n\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d0962936bff659d20522555b517582a2715fd23f",
      "tree": "dc9654b2e2c7b7db2b8f2a14f829d5f807c7342e",
      "parents": [
        "61a0d80ce4ab5b4fb9ecb38f1fb19654778b71ed"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "message": "md: fix clearing of the \u0027changed\u0027 flags for the bad blocks list.\n\nIn super_1_sync (the first hunk) we need to clear \u0027changed\u0027 before\nchecking read_seqretry(), otherwise we might race with other code\nadding a bad block and so won\u0027t retry later.\n\nIn md_update_sb (the second hunk), in the case where there is no\nmetadata (neither persistent nor external), we treat any bad blocks as\nan error.  However we need to clear the \u0027changed\u0027 flag before calling\nmd_ack_all_badblocks, else it won\u0027t do anything.\n\nThis patch is suitable for -stable release 3.0 and later.\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "61a0d80ce4ab5b4fb9ecb38f1fb19654778b71ed",
      "tree": "21631162d46575db6645636d1c18b8797247d0c9",
      "parents": [
        "792a1d4bbf960000f066358f0a8c6e769c8c72bc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "message": "md/bitmap: discard CHUNK_BLOCK_SHIFT macro\n\nBe redefining -\u003echunkshift as the shift from sectors to chunks rather\nthan bytes to chunks, we can just use \"bitmap-\u003echunkshift\" which is\nshorter than the macro call, and less indirect.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "792a1d4bbf960000f066358f0a8c6e769c8c72bc",
      "tree": "97e9a5c0854551c3fa80e88851ad3317af24ca13",
      "parents": [
        "5a6c824ebb7c9f8dbbc92ffd3528e6366cad1a54"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:41 2012 +1100"
      },
      "message": "md/bitmap: remove unnecessary indirection when allocating.\n\nThese funcitons don\u0027t add anything useful except possibly the trace\npoints, and I don\u0027t think they are worth the extra indirection.\nSo remove them.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5a6c824ebb7c9f8dbbc92ffd3528e6366cad1a54",
      "tree": "e78d8527ae9e7be05001ed12f1cad01f8719bde0",
      "parents": [
        "278c1ca2f254d0695d2eba79793d20ce785323ea"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: remove some pointless locking.\n\nThere is nothing gained by holding a lock while we check if a pointer\nis NULL or not.  If there could be a race, then it could become NULL\nimmediately after the unlock - but there is no race here.\n\nSo just remove the locking.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "278c1ca2f254d0695d2eba79793d20ce785323ea",
      "tree": "42be282251b17c16e030d7083eef4bbeefe60b41",
      "parents": [
        "57148964d946614ffc6621539096ded1e7d896ab"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: change a \u0027goto\u0027 to a normal \u0027if\u0027 construct.\n\nThe use of a goto makes the control flow more obscure here.\n\nSo make it a normal:\n  if (x) {\n     Y;\n  }\n\nNo functional change.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "57148964d946614ffc6621539096ded1e7d896ab",
      "tree": "d4bdadf58d740fcdb3c65063a5706cc3902f2b9b",
      "parents": [
        "4ba97dff719b4cbeb7a4f6beddd2feb7404102d8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: move printing of bitmap status to bitmap.c\n\nThe part of /proc/mdstat which describes the bitmap should really\nbe generated by code in bitmap.c.  So move it there.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4ba97dff719b4cbeb7a4f6beddd2feb7404102d8",
      "tree": "3d8e2afc4d20405a88fb70e7cd494452944b3a41",
      "parents": [
        "006a09a0ae0a494473a8cd82c8d1d653e37e6663"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/bitmap: remove some unused noise from bitmap.h\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "006a09a0ae0a494473a8cd82c8d1d653e37e6663",
      "tree": "169c59f77ef89e1c7cfb727249d60de88370fe79",
      "parents": [
        "6b740b8d79252f13bcb7e5d3c1d43157e78a81e7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:40 2012 +1100"
      },
      "message": "md/raid10 - support resizing some RAID10 arrays.\n\n\u0027resizing\u0027 an array in this context means making use of extra\nspace that has become available in component devices, not adding new\ndevices.\nIt also includes shrinking the array to take up less space of\ncomponent devices.\n\nThis is not supported for array with a \u0027far\u0027 layout.  However\nfor \u0027near\u0027 and \u0027offset\u0027 layout arrays, adding and removing space at\nthe end of the devices is easy to support, and this patch provides\nthat support.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6b740b8d79252f13bcb7e5d3c1d43157e78a81e7",
      "tree": "4b99f8fb395e7a205a85766d1bd241dce39c4337",
      "parents": [
        "050b66152f87c79e8d66aed0e7996f9336462d5f"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md/raid1: handle merge_bvec_fn in member devices.\n\nCurrently we don\u0027t honour merge_bvec_fn in member devices so if there\nis one, we force all requests to be single-page at most.\nThis is not ideal.\n\nSo create a raid1 merge_bvec_fn to check that function in children\nas well.\n\nThis introduces a small problem.  There is no locking around calls\nthe -\u003emerge_bvec_fn and subsequent calls to -\u003emake_request.  So a\ndevice added between these could end up getting a request which\nviolates its merge_bvec_fn.\n\nCurrently the best we can do is synchronize_sched().  This will work\nproviding no preemption happens.  If there is is preemption, we just\nhave to hope that new devices are largely consistent with old devices.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "050b66152f87c79e8d66aed0e7996f9336462d5f",
      "tree": "44d100c2eadf2a56794e7b526abeb21d1019baa1",
      "parents": [
        "ba13da47ffa202784355561f72160a41350e95cc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md/raid10: handle merge_bvec_fn in member devices.\n\nCurrently we don\u0027t honour merge_bvec_fn in member devices so if there\nis one, we force all requests to be single-page at most.\nThis is not ideal.\n\nSo enhance the raid10 merge_bvec_fn to check that function in children\nas well.\n\nThis introduces a small problem.  There is no locking around calls\nthe -\u003emerge_bvec_fn and subsequent calls to -\u003emake_request.  So a\ndevice added between these could end up getting a request which\nviolates its merge_bvec_fn.\n\nCurrently the best we can do is synchronize_sched().  This will work\nproviding no preemption happens.  If there is preemption, we just\nhave to hope that new devices are largely consistent with old devices.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ba13da47ffa202784355561f72160a41350e95cc",
      "tree": "9b60f27ab89e4036df65d0dc3bf52b7420f83a50",
      "parents": [
        "dafb20fa34320a472deb7442f25a0c086e0feb33"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md: add proper merge_bvec handling to RAID0 and Linear.\n\nThese personalities currently set a max request size of one page\nwhen any member device has a merge_bvec_fn because they don\u0027t\nbother to call that function.\n\nThis causes extra works in splitting and combining requests.\n\nSo make the extra effort to call the merge_bvec_fn when it exists\nso that we end up with larger requests out the bottom.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dafb20fa34320a472deb7442f25a0c086e0feb33",
      "tree": "2ff501805f8a6d08119f1f1a7248f579d52e491b",
      "parents": [
        "d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:39 2012 +1100"
      },
      "message": "md: tidy up rdev_for_each usage.\n\nmd.h has an \u0027rdev_for_each()\u0027 macro for iterating the rdevs in an\nmddev.  However it uses the \u0027safe\u0027 version of list_for_each_entry,\nand so requires the extra variable, but doesn\u0027t include \u0027safe\u0027 in the\nname, which is useful documentation.\n\nConsequently some places use this safe version without needing it, and\nmany use an explicity list_for_each entry.\n\nSo:\n - rename rdev_for_each to rdev_for_each_safe\n - create a new rdev_for_each which uses the plain\n   list_for_each_entry,\n - use the \u0027safe\u0027 version only where needed, and convert all other\n   list_for_each_entry calls to use rdev_for_each.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf",
      "tree": "a9112351e8ddd2866afd8687b645a1c5bf574ee7",
      "parents": [
        "4474ca42e2577563a919fd3ed782e2ec55bf11a2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:38 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:38 2012 +1100"
      },
      "message": "md/raid1,raid10: avoid deadlock during resync/recovery.\n\nIf RAID1 or RAID10 is used under LVM or some other stacking\nblock device, it is possible to enter a deadlock during\nresync or recovery.\nThis can happen if the upper level block device creates\ntwo requests to the RAID1 or RAID10.  The first request gets\nprocessed, blocks recovery and queue requests for underlying\nrequests in current-\u003ebio_list.  A resync request then starts\nwhich will wait for those requests and block new IO.\n\nBut then the second request to the RAID1/10 will be attempted\nand it cannot progress until the resync request completes,\nwhich cannot progress until the underlying device requests complete,\nwhich are on a queue behind that second request.\n\nSo allow that second request to proceed even though there is\na resync request about to start.\n\nThis is suitable for any -stable kernel.\n\nCc: stable@vger.kernel.org\nReported-by: Ray Morris \u003csupport@bettercgi.com\u003e\nTested-by: Ray Morris \u003csupport@bettercgi.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "4474ca42e2577563a919fd3ed782e2ec55bf11a2",
      "tree": "db451c8fad37b281ddbf1d00a779257537cc61ff",
      "parents": [
        "c744a65c1e2d59acc54333ce80a5b0702a98010b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "message": "md/bitmap: ensure to load bitmap when creating via sysfs.\n\nWhen commit 69e51b449d383e (md/bitmap:  separate out loading a bitmap...)\ncreated bitmap_load, it missed calling it after bitmap_create when a\nbitmap is created through the sysfs interface.\nSo if a bitmap is added this way, we don\u0027t allocate memory properly\nand can crash.\n\nThis is suitable for any -stable release since 2.6.35.\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "c744a65c1e2d59acc54333ce80a5b0702a98010b",
      "tree": "c76ff42e8f799030636d07c82879cc2bef7798db",
      "parents": [
        "dc10c643e8a8d008fd16dd6706e9e0018eadf8d2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "message": "md: don\u0027t set md arrays to readonly on shutdown.\n\nIt seems that with recent kernel, writeback can still be happening\nwhile shutdown is happening, and consequently data can be written\nafter the md reboot notifier switches all arrays to read-only.\nThis causes a BUG.\n\nSo don\u0027t switch them to read-only - just mark them clean and\nset \u0027safemode\u0027 to \u00272\u0027 which mean that immediately after any\nwrite the array will be switch back to \u0027clean\u0027.\n\nThis could result in the shutdown happening when array is marked\ndirty, thus forcing a resync on reboot.  However if you reboot\nwithout performing a \"sync\" first, you get to keep both halves.\n\nThis is suitable for any stable kernel (though there might be some\nconflicts with obvious fixes in earlier kernels).\n\nCc: stable@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dc10c643e8a8d008fd16dd6706e9e0018eadf8d2",
      "tree": "6a0efe323cfaca9d180c0429c74697598c6d9a05",
      "parents": [
        "41fe75f60bcd4d698daed3e54bb099227358ce58"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 19 12:46:37 2012 +1100"
      },
      "message": "md: allow re-add to failed arrays.\n\nWhen an array is failed (some data inaccessible) then there is no\npoint attempting to add a spare as it could not possibly be recovered.\n\nHowever that may be value in re-adding a recently removed device.\ne.g. if there is a write-intent-bitmap and it is clear, then access\nto the data could be restored by this action.\n\nSo don\u0027t reject a re-add to a failed array for RAID10 and RAID5 (the\nonly arrays  types that check for a failed array).\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "41fe75f60bcd4d698daed3e54bb099227358ce58",
      "tree": "bbd15d0143d20c59f87c5e6d2e0afba57252929b",
      "parents": [
        "43437ecd5adc8bd712b7140c8a70e2b4a80a89dd"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Tue Mar 13 11:21:25 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:25 2012 +1100"
      },
      "message": "md/raid5: use atomic_dec_return() instead of atomic_dec() and atomic_read().\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "9d4c7d8799c418816342e263479fa010b182183e",
      "tree": "e1450bda6809a36d5bdb666ae0ab88ef1492b580",
      "parents": [
        "547414d19fd72376ff2ecc42aac8d7a051f03d26"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:21 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:21 2012 +1100"
      },
      "message": "md/raid5: removed unused \u0027added_devices\u0027 variable.\n\ncommit 908f4fbd265733 removed the last user of this variable,\nso we should discard it completely.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "547414d19fd72376ff2ecc42aac8d7a051f03d26",
      "tree": "d46f4726e9bc397a182b9c36665a941e70692281",
      "parents": [
        "1e3fa9bd5061778fb5cf4648e4e8321e8cbbb95b"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:20 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:20 2012 +1100"
      },
      "message": "md/raid10: remove unnecessary smp_mb() from end_sync_write\n\nRecent commit 4ca40c2ce099e4f1ce3 (md/raid10: Allow replacement device ...)\nadded an smp_mb in end_sync_write.\nThis was to close a possible race with raid10_remove_disk.\nHowever there is no such race as it is never attempted to remove a\ndisk while resync (or recovery) is happening.\nso the smp_mb is just noise.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1e3fa9bd5061778fb5cf4648e4e8321e8cbbb95b",
      "tree": "de51166f0369e17cc2cb20566b61b7b3c873d7fc",
      "parents": [
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:18 2012 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Mar 13 11:21:18 2012 +1100"
      },
      "message": "md/raid5: make sure reshape_position is cleared on error path.\n\nLeaving a valid reshape_position value in place could be confusing.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "5d0edf29151bb5ba372784b7e369f42cf23a94eb",
      "tree": "847eee159ac3387fd6ad1c385341d70fc45ea13b",
      "parents": [
        "4f262acfde22b63498b5e4f165e53d3bb4e96400",
        "0ca93de9b789e0eb05e103f0c04de72df13da73a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 08 17:21:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 08 17:21:51 2012 -0800"
      },
      "message": "Merge tag \u0027dm-3.3-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm\n\nPull device-mapper fixes for 3.3 from Alasdair Kergon\n\nEight small device-mapper bug fixes.\n\n* tag \u0027dm-3.3-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:\n  dm raid: fix flush support\n  dm raid: set MD_CHANGE_DEVS when rebuilding\n  dm thin metadata: decrement counter after removing mapped block\n  dm thin metadata: unlock superblock in init_pmd error path\n  dm thin metadata: remove incorrect close_device on creation error paths\n  dm flakey: fix crash on read when corrupt_bio_byte not set\n  dm io: fix discard support\n  dm ioctl: do not leak argv if target message only contains whitespace\n"
    },
    {
      "commit": "0ca93de9b789e0eb05e103f0c04de72df13da73a",
      "tree": "3a7bd34140d69a9c7bc5eb1874de773511770197",
      "parents": [
        "3aa3b2b2b1edb813dc5342d0108befc39541542d"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed Mar 07 19:09:48 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Wed Mar 07 19:09:48 2012 +0000"
      },
      "message": "dm raid: fix flush support\n\nFix dm-raid flush support.\n\nBoth md and dm have support for flush, but the dm-raid target\nforgot to set the flag to indicate that flushes should be\npassed on.  (Important for data integrity e.g. with writeback cache\nenabled.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    }
  ],
  "next": "3aa3b2b2b1edb813dc5342d0108befc39541542d"
}
