1. 20 9月, 2009 1 次提交
  2. 16 9月, 2009 2 次提交
  3. 15 9月, 2009 1 次提交
  4. 14 9月, 2009 1 次提交
    • E
      aoe: end barrier bios with EOPNOTSUPP · 18d8217b
      Ed Cashin 提交于
      BugLink: http://bugzilla.kernel.org/show_bug.cgi?id=13942
      
      Bruno Premont noticed that aoe throws a BUG during umount of an XFS in
      2.6.31:
      
      [ 5259.349897] aoe: bi_io_vec is NULL
      [ 5259.349940] ------------[ cut here ]------------
      [ 5259.349958] kernel BUG at /usr/src/linux-2.6/drivers/block/aoe/aoeblk.c:177!
      [ 5259.349990] invalid opcode: 0000 [#1]
      
      The bio in question is a barrier.  Jens Axboe suggested that such bios
      need to be recognized and ended with -EOPNOTSUPP by any driver that
      provides its own ->make_request_fn handler and does not handle
      barriers.
      
      In testing the changes below eliminate the BUG.
      
      (Better would be real barrier support, something that Ed says he'll add
      for later in the .32 cycle. For now, this at least gets rid of a bug
      with crashing on an empty barrier. Jens)
      Signed-off-by: NEd L. Cashin <ecashin@coraid.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      18d8217b
  5. 11 9月, 2009 4 次提交
  6. 09 9月, 2009 1 次提交
    • E
      aoe: allocate unused request_queue for sysfs · 7135a71b
      Ed Cashin 提交于
      Andy Whitcroft reported an oops in aoe triggered by use of an
      incorrectly initialised request_queue object:
      
        [ 2645.959090] kobject '<NULL>' (ffff880059ca22c0): tried to add
      		an uninitialized object, something is seriously wrong.
        [ 2645.959104] Pid: 6, comm: events/0 Not tainted 2.6.31-5-generic #24-Ubuntu
        [ 2645.959107] Call Trace:
        [ 2645.959139] [<ffffffff8126ca2f>] kobject_add+0x5f/0x70
        [ 2645.959151] [<ffffffff8125b4ab>] blk_register_queue+0x8b/0xf0
        [ 2645.959155] [<ffffffff8126043f>] add_disk+0x8f/0x160
        [ 2645.959161] [<ffffffffa01673c4>] aoeblk_gdalloc+0x164/0x1c0 [aoe]
      
      The request queue of an aoe device is not used but can be allocated in
      code that does not sleep.
      
      Bruno bisected this regression down to
      
        cd43e26f
      
        block: Expose stacked device queues in sysfs
      
      "This seems to generate /sys/block/$device/queue and its contents for
       everyone who is using queues, not just for those queues that have a
       non-NULL queue->request_fn."
      
      Addresses http://bugs.launchpad.net/bugs/410198
      Addresses http://bugzilla.kernel.org/show_bug.cgi?id=13942
      
      Note that embedding a queue inside another object has always been
      an illegal construct, since the queues are reference counted and
      must persist until the last reference is dropped. So aoe was
      always buggy in this respect (Jens).
      Signed-off-by: NEd Cashin <ecashin@coraid.com>
      Cc: Andy Whitcroft <apw@canonical.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Bruno Premont <bonbons@linux-vserver.org>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      7135a71b
  7. 20 8月, 2009 1 次提交
  8. 28 7月, 2009 4 次提交
  9. 19 7月, 2009 1 次提交
    • R
      virtio_blk: mark virtio_blk with __refdata to kill spurious section mismatch · 4fbfff76
      Rakib Mullick 提交于
      The variable virtio_blk references the function virtblk_probe() (which
      is in .devinit section) and also references the function
      virtblk_remove() ( which is in .devexit section). So, virtio_blk
      simultaneously refers .devinit and .devexit section. To avoid this
      messup, we mark virtio_blk as __refdata.
      
      We were warned by the following warning:
      
        LD      drivers/block/built-in.o
        WARNING: drivers/block/built-in.o(.data+0xc8dc): Section mismatch in
        reference from the variable virtio_blk to the function
        .devinit.text:virtblk_probe()
        The variable virtio_blk references
        the function __devinit virtblk_probe()
        If the reference is valid then annotate the
        variable with __init* or __refdata (see linux/init.h) or name the variable:
        *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      
        WARNING: drivers/block/built-in.o(.data+0xc8e0): Section mismatch in
        reference from the variable virtio_blk to the function
        .devexit.text:virtblk_remove()
        The variable virtio_blk references
        the function __devexit virtblk_remove()
        If the reference is valid then annotate the
        variable with __exit* (see linux/init.h) or name the variable:
        *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      Signed-off-by: NRakib Mullick <rakib.mullick@gmail.com>
      Signed-off-by: NTejun Heo <tj@kernel.org>
      4fbfff76
  10. 17 7月, 2009 3 次提交
  11. 15 7月, 2009 1 次提交
  12. 13 7月, 2009 1 次提交
  13. 11 7月, 2009 1 次提交
  14. 09 7月, 2009 1 次提交
  15. 04 7月, 2009 1 次提交
    • H
      cciss: Ignore stale commands after reboot · b59e64d0
      Hannes Reinecke 提交于
      When doing an unexpected shutdown like kexec the cciss
      firmware might still have some commands in flight, which
      it is trying to complete.
      The driver is doing it's best on resetting the HBA,
      but sadly there's a firmware issue causing the firmware
      _not_ to abort or drop old commands.
      So the firmware will send us commands which we haven't
      accounted for, causing the driver to panic.
      
      With this patch we're just ignoring these commands as
      there is nothing we could be doing with them anyway.
      Signed-off-by: NHannes Reinecke <hare@suse.de>
      Acked-by: NMike Miller <mike.miller@hp.com>
      Signed-off-by: NJens Axboe <axboe@carl.(none)>
      b59e64d0
  16. 01 7月, 2009 1 次提交
  17. 24 6月, 2009 2 次提交
    • B
      osdblk: Adjust queue limits to lower device's limits · bc47df0f
      Boaz Harrosh 提交于
      call blk_queue_stack_limits() to copy queue limits from
      the underline osd scsi_device. This is absolutely needed
      because osdblk cannot sleep when allocating a lower-request and
      therefore cannot be bouncing.
      
      TODO: Dynamic changes of limits to the lower device queue
      will not reflect in the upper driver
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      bc47df0f
    • J
      osdblk: a Linux block device for OSD objects · 2a13877c
      Jeff Garzik 提交于
      Submitted driver exports a block device of the form /dev/osdblkX,
      where X is a decimal number.
      
      It does that by mounting a stacking block device on top
      of an osd object. For example, if you create a 2G object
      on an OSD device, you can then use this module to present
      that 2G object as a Linux block device.
      
      See inside patch for exact documentation.
      
      [Sitting at linux-next helped fix proper Kconfig dependency
       for this driver, thanks to Randy Dunlap]
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NBoaz Harrosh <bharrosh@panasas.com>
      2a13877c
  18. 18 6月, 2009 1 次提交
  19. 16 6月, 2009 7 次提交
  20. 15 6月, 2009 5 次提交