1. 08 3月, 2012 7 次提交
    • J
      dm raid: set MD_CHANGE_DEVS when rebuilding · 3aa3b2b2
      Jonathan E Brassow 提交于
      The 'rebuild' parameter is used to rebuild individual devices in an
      array (e.g. resynchronize a RAID1 device or recalculate a parity device
      in higher RAID).  The MD_CHANGE_DEVS flag must be set when this
      parameter is given in order to write out the superblocks and make the
      change take immediate effect.  The code that handles new devices in
      super_load already sets MD_CHANGE_DEVS and 'FirstUse'.  (The 'FirstUse'
      flag was being set as a special case for rebuilds in
      super_init_validation.)
      
      Add a condition for rebuilds in super_load to take care of both flags
      without the special case in 'super_init_validation'.
      Signed-off-by: NJonathan Brassow <jbrassow@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      3aa3b2b2
    • J
      dm thin metadata: decrement counter after removing mapped block · af63bcb8
      Joe Thornber 提交于
      Correct the number of mapped sectors shown on a thin device's
      status line by decrementing td->mapped_blocks in __remove() each time
      a block is removed.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Acked-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      af63bcb8
    • J
      dm thin metadata: unlock superblock in init_pmd error path · 4469a5f3
      Joe Thornber 提交于
      If dm_sm_disk_create() fails the superblock must be unlocked.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Acked-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      4469a5f3
    • M
      dm thin metadata: remove incorrect close_device on creation error paths · 1f3db25d
      Mike Snitzer 提交于
      The __open_device() error paths in __create_thin() and __create_snap()
      incorrectly call __close_device() even if td was not initialized by
      __open_device().  Remove this.
      
      Also document __open_device() return values, remove a redundant
      td->changed = 1 in __create_thin(), and insert an additional
      safeguard against creating an already-existing device.
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      1f3db25d
    • M
      dm flakey: fix crash on read when corrupt_bio_byte not set · 1212268f
      Mike Snitzer 提交于
      The following BUG is hit on the first read that is submitted to a dm
      flakey test device while the device is "down" if the corrupt_bio_byte
      feature wasn't requested when the device's table was loaded.
      
      Example DM table that will hit this BUG:
      0 2097152 flakey 8:0 2048 0 30
      
      This bug was introduced by commit a3998799
      (dm flakey: add corrupt_bio_byte feature) in v3.1-rc1.
      
      BUG: unable to handle kernel paging request at ffff8801cfce3fff
      IP: [<ffffffffa008c233>] corrupt_bio_data+0x6e/0xae [dm_flakey]
      PGD 1606063 PUD 0
      Oops: 0002 [#1] SMP
      ...
      Call Trace:
       <IRQ>
       [<ffffffffa008c2b5>] flakey_end_io+0x42/0x48 [dm_flakey]
       [<ffffffffa00dca98>] clone_endio+0x54/0xb6 [dm_mod]
       [<ffffffff81130587>] bio_endio+0x2d/0x2f
       [<ffffffff811c819a>] req_bio_endio+0x96/0x9f
       [<ffffffff811c94b9>] blk_update_request+0x1dc/0x3a9
       [<ffffffff812f5ee2>] ? rcu_read_unlock+0x21/0x23
       [<ffffffff811c96a6>] blk_update_bidi_request+0x20/0x6e
       [<ffffffff811c9713>] blk_end_bidi_request+0x1f/0x5d
       [<ffffffff811c978d>] blk_end_request+0x10/0x12
       [<ffffffff8128f450>] scsi_io_completion+0x1e5/0x4b1
       [<ffffffff812882a9>] scsi_finish_command+0xec/0xf5
       [<ffffffff8128f830>] scsi_softirq_done+0xff/0x108
       [<ffffffff811ce284>] blk_done_softirq+0x84/0x98
       [<ffffffff81048d19>] __do_softirq+0xe3/0x1d5
       [<ffffffff8138f83f>] ? _raw_spin_lock+0x62/0x69
       [<ffffffff810997cf>] ? handle_irq_event+0x4c/0x61
       [<ffffffff8139833c>] call_softirq+0x1c/0x30
       [<ffffffff81003b37>] do_softirq+0x4b/0xa3
       [<ffffffff81048a39>] irq_exit+0x53/0xca
       [<ffffffff81398acd>] do_IRQ+0x9d/0xb4
       [<ffffffff81390333>] common_interrupt+0x73/0x73
      ...
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # 3.1+
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      1212268f
    • M
      dm io: fix discard support · 0c535e0d
      Milan Broz 提交于
      This patch fixes a crash by recognising discards in dm_io.
      
      Currently dm_mirror can send REQ_DISCARD bios if running over a
      discard-enabled device and without support in dm_io the system
      crashes badly.
      
      BUG: unable to handle kernel paging request at 00800000
      IP:  __bio_add_page.part.17+0xf5/0x1e0
      ...
       bio_add_page+0x56/0x70
       dispatch_io+0x1cf/0x240 [dm_mod]
       ? km_get_page+0x50/0x50 [dm_mod]
       ? vm_next_page+0x20/0x20 [dm_mod]
       ? mirror_flush+0x130/0x130 [dm_mirror]
       dm_io+0xdc/0x2b0 [dm_mod]
      ...
      
      Introduced in 2.6.38-rc1 by commit 5fc2ffea
      (dm raid1: support discard).
      Signed-off-by: NMilan Broz <mbroz@redhat.com>
      Cc: stable@kernel.org
      Acked-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      0c535e0d
    • J
      dm ioctl: do not leak argv if target message only contains whitespace · 902c6a96
      Jesper Juhl 提交于
      If 'argc' is zero we jump to the 'out:' label, but this leaks the
      (unused) memory that 'dm_split_args()' allocated for 'argv' if the
      string being split consisted entirely of whitespace.  Jump to the
      'out_argv:' label instead to free up that memory.
      Signed-off-by: NJesper Juhl <jj@chaosbits.net>
      Cc: stable@kernel.org
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      902c6a96
  2. 04 3月, 2012 5 次提交
  3. 03 3月, 2012 13 次提交
  4. 02 3月, 2012 8 次提交
  5. 01 3月, 2012 7 次提交