1. 04 10月, 2008 23 次提交
  2. 03 10月, 2008 8 次提交
  3. 02 10月, 2008 2 次提交
  4. 01 10月, 2008 3 次提交
    • C
      dm mpath: add missing path switching locking · 7253a334
      Chandra Seetharaman 提交于
      Moving the path activation to workqueue along with scsi_dh patches introduced
      a race. It is due to the fact that the current_pgpath (in the multipath data
      structure) can be modified if changes happen in any of the paths leading to
      the lun. If the changes lead to current_pgpath being set to NULL, then it
      leads to the invalid access which results in the panic below.
      
      This patch fixes that by storing the pgpath to activate in the multipath data
      structure and properly protecting it.
      
      Note that if activate_path is called twice in succession with different pgpath,
      with the second one being called before the first one is done, then activate
      path will be called twice for the second pgpath, which is fine.
      
      Unable to handle kernel paging request for data at address 0x00000020
      Faulting instruction address: 0xd000000000aa1844
      cpu 0x1: Vector: 300 (Data Access) at [c00000006b987a80]
          pc: d000000000aa1844: .activate_path+0x30/0x218 [dm_multipath]
          lr: c000000000087a2c: .run_workqueue+0x114/0x204
          sp: c00000006b987d00
         msr: 8000000000009032
         dar: 20
       dsisr: 40000000
        current = 0xc0000000676bb3f0
        paca    = 0xc0000000006f3680
          pid   = 2528, comm = kmpath_handlerd
      enter ? for help
      [c00000006b987da0] c000000000087a2c .run_workqueue+0x114/0x204
      [c00000006b987e40] c000000000088b58 .worker_thread+0x120/0x144
      [c00000006b987f00] c00000000008ca70 .kthread+0x78/0xc4
      [c00000006b987f90] c000000000027cc8 .kernel_thread+0x4c/0x68
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      7253a334
    • M
      dm: cope with access beyond end of device in dm_merge_bvec · b01cd5ac
      Mikulas Patocka 提交于
      If for any reason dm_merge_bvec() is given an offset beyond the end of the
      device, avoid an oops and always allow one page to be added to an empty bio.
      We'll reject the I/O later after the bio is submitted.
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      b01cd5ac
    • M
      dm: always allow one page in dm_merge_bvec · 5037108a
      Mikulas Patocka 提交于
      Some callers assume they can always add at least one page to an empty bio,
      so dm_merge_bvec should not return 0 in this case: we'll reject the I/O
      later after the bio is submitted.
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      5037108a
  5. 30 9月, 2008 2 次提交
  6. 29 9月, 2008 2 次提交
    • B
      scsi: fix fall out of sg-chaining patch in qlogicpti · 7e6cfb54
      Boaz Harrosh 提交于
      Boaz writes:
      
      "I've reviewed all patches since Matthew's, and I find one small
      problem.
      
      In the load_cmd() there is a compound loop where the first 4 sg's are
      set then the rest are set into a memory structure in group of 7 sg's.
      
      Well the second 7-group and on is a bug because sg pointer does not advance.
      This is a fall out from Jens's patch."
      
      The reporter, Meelis Roos <mroos@ut.ee>, verified that this patch
      does indeed fix his problem with qlogicpti.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      7e6cfb54
    • T
      sata_nv: reinstate nv_hardreset() for non generic controllers · 4c1eb90a
      Tejun Heo 提交于
      Commit 2fd673ec which tried to remove
      hardreset for generic accidentally removed it for all flavors as all
      others were inheriting from nv_generic_ops.  This patch reinstates
      nv_hardreset() and puts it into nv_common_ops which all flavors
      inherit from.  nv_generic_ops now inherits from nv_common_ops and
      overrides .hardreset to ATA_OP_NULL.
      
      While at it, explain why nv_hardreset and ATA_OP_NULL override are
      necessary.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      4c1eb90a