11 Feb, 2009

2 commits

  • In dasd_device_set_timer and dasd_block_set_timer we interpret the
    return value of mod_timer in a wrong way. If the timer expires in
    the small window between our check of timer_pending and the call to
    mod_timer, then the timer will be set, mod_timer returns zero and
    we will call add_timer for a timer that is already pending.
    As del_timer and mod_timer do all the necessary checking themselves,
    we can simplify our code and remove the race a the same time.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • bus_id usage crept in again; fix it.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Heiko Carstens

    Cornelia Huck
     

09 Jan, 2009

3 commits

  • When the connection between host and storage server is lost, the
    dasd device driver usually blocks all I/O on affected devices and
    waits for them to reappear. In some setups however it would be
    better if the I/O is returned as error so that device can be
    recovered by some other means, eg. in a raid or multipath setup.

    Signed-off-by: Holger Smolinski
    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Holger Smolinski
     
  • When a DASD device enters or leaves the 'online' state we need to
    trigger change events for the respective disk and partitions.
    These extra events are needed because when disk and partitions are
    first added, udev rules that try to read disk labels or other data
    may fail as the disk may not yet be ready.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • When I review ocfs2 code, find there are 2 typos to "successfull". After
    doing grep "successfull " in kernel tree, 22 typos found totally -- great
    minds always think alike :)

    This patch fixes all the similar typos. Thanks for Randy's ack and comments.

    Signed-off-by: Coly Li
    Acked-by: Randy Dunlap
    Acked-by: Roland Dreier
    Cc: Jeremy Kerr
    Cc: Jeff Garzik
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Theodore Ts'o
    Cc: Mark Fasheh
    Cc: Vlad Yasevich
    Cc: Sridhar Samudrala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Coly Li
     

08 Jan, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)
    trivial: chack -> check typo fix in main Makefile
    trivial: Add a space (and a comma) to a printk in 8250 driver
    trivial: Fix misspelling of "firmware" in docs for ncr53c8xx/sym53c8xx
    trivial: Fix misspelling of "firmware" in powerpc Makefile
    trivial: Fix misspelling of "firmware" in usb.c
    trivial: Fix misspelling of "firmware" in qla1280.c
    trivial: Fix misspelling of "firmware" in a100u2w.c
    trivial: Fix misspelling of "firmware" in megaraid.c
    trivial: Fix misspelling of "firmware" in ql4_mbx.c
    trivial: Fix misspelling of "firmware" in acpi_memhotplug.c
    trivial: Fix misspelling of "firmware" in ipw2100.c
    trivial: Fix misspelling of "firmware" in atmel.c
    trivial: Fix misspelled firmware in Kconfig
    trivial: fix an -> a typos in documentation and comments
    trivial: fix then -> than typos in comments and documentation
    trivial: update Jesper Juhl CREDITS entry with new email
    trivial: fix singal -> signal typo
    trivial: Fix incorrect use of "loose" in event.c
    trivial: printk: fix indentation of new_text_line declaration
    trivial: rtc-stk17ta8: fix sparse warning
    ...

    Linus Torvalds
     

07 Jan, 2009

1 commit


06 Jan, 2009

1 commit


25 Dec, 2008

7 commits


15 Nov, 2008

1 commit


21 Oct, 2008

5 commits

  • * get rid of fake struct file/struct dentry in __blkdev_get()
    * merge __blkdev_get() and do_open()
    * get rid of flags argument of blkdev_get()

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • ->compat_ioctl() actually had been useless here; generic
    logics works fine.

    Signed-off-by: Al Viro

    Al Viro
     
  • To keep the size of changesets sane we split the switch by drivers;
    to keep the damn thing bisectable we do the following:
    1) rename the affected methods, add ones with correct
    prototypes, make (few) callers handle both. That's this changeset.
    2) for each driver convert to new methods. *ALL* drivers
    are converted in this series.
    3) kill the old (renamed) methods.

    Note that it _is_ a flagday; all in-tree drivers are converted and by the
    end of this series no trace of old methods remain. The only reason why
    we do that this way is to keep the damn thing bisectable and allow per-driver
    debugging if anything goes wrong.

    New methods:
    open(bdev, mode)
    release(disk, mode)
    ioctl(bdev, mode, cmd, arg) /* Called without BKL */
    compat_ioctl(bdev, mode, cmd, arg)
    locked_ioctl(bdev, mode, cmd, arg) /* Called with BKL, legacy */

    Signed-off-by: Al Viro

    Al Viro
     

13 Oct, 2008

1 commit

  • Multipath is best at handling transport errors. If it gets a device
    error then there is not much the multipath layer can do. It will just
    access the same device but from a different path.

    This patch breaks up failfast into device, transport and driver errors.
    The multipath layers (md and dm mutlipath) only ask the lower levels to
    fast fail transport errors. The user of failfast, read ahead, will ask
    to fast fail on all errors.

    Note that blk_noretry_request will return true if any failfast bit
    is set. This allows drivers that do not support the multipath failfast
    bits to continue to fail on any failfast error like before. Drivers
    like scsi that are able to fail fast specific errors can check
    for the specific fail fast type. In the next patch I will convert
    scsi.

    Signed-off-by: Mike Christie
    Cc: Jens Axboe
    Signed-off-by: James Bottomley

    Mike Christie
     

11 Oct, 2008

6 commits

  • EMC Symmetrix Subsystem Control I/O through CKD dasd requires a
    specific parameter list sent to the array via a Perform Subsystem
    Function CCW. The Symmetrix response is retrieved from the array
    via a Read Subsystem Data CCW.

    Signed-off-by: Nigel Hislop
    Signed-off-by: Hannes Reinecke
    Signed-off-by: Martin Schwidefsky

    Nigel Hislop
     
  • The xpram driver uses a single block device queue for all of its
    devices so far. With recent kernels removing xpram module fails to
    clean up all sysfs files. The next time the xpram module is loaded
    you'll get warnings:

    WARNING: at fs/sysfs/dir.c:463 sysfs_add_one+0x5e/0x64()
    sysfs: duplicate filename '35:0' can not be created
    Modules linked in: xpram(+) [last unloaded: xpram]

    Followed by the usual WARN_ON output, followed by an error message
    from kobject_add_internal, followed by a badness in genhd. Allocating
    a block queue per device fixes this.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • In the unsolicited interupt handler fake IRBs from CIO have to be
    ignored because there is nothing to do.
    The function dump_sense should not be called if there is no sense
    data available.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • The DCSS block device driver is modified to add >2G DCSSs support and
    allow a DCSS block device to map to a set of contiguous DCSSs. The
    extmem code is also modified to use new Diagnose x'64' subcodes for
    >2G DCSSs.

    Signed-off-by: Hongjie Yang
    Signed-off-by: Martin Schwidefsky

    Hongjie Yang
     
  • Convert most s390 users setting bus_id to dev_set_name().
    css and ccw busses are deferred since they need some special
    treatment.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Martin Schwidefsky

    Cornelia Huck
     
  • bus_id -> dev_name() conversions in s390 code.

    [cornelia.huck@de.ibm.com: minor adaptions]
    Signed-off-by: Kay Sievers
    Cc: Cornelia Huck
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Martin Schwidefsky

    Kay Sievers
     

09 Oct, 2008

1 commit

  • * Implement disk_devt() and part_devt() and use them to directly
    access devt instead of computing it from ->major and ->first_minor.

    Note that all references to ->major and ->first_minor outside of
    block layer is used to determine devt of the disk (the part0) and as
    ->major and ->first_minor will continue to represent devt for the
    disk, converting these users aren't strictly necessary. However,
    convert them for consistency.

    * Implement disk_max_parts() to avoid directly deferencing
    genhd->minors.

    * Update bdget_disk() such that it doesn't assume consecutive minor
    space.

    * Move devt computation from register_disk() to add_disk() and make it
    the only one (all other usages use the initially determined value).

    These changes clean up the code and will help disk->part dereference
    fix and extended block device numbers.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jens Axboe

    Tejun Heo
     

26 Aug, 2008

1 commit

  • Fix this compile bug:

    CC drivers/s390/block/dcssblk.o
    drivers/s390/block/dcssblk.c: In function 'dcssblk_add_store':
    drivers/s390/block/dcssblk.c:387: error: implicit declaration of function 'dcssblk_get_segment_by_name'
    drivers/s390/block/dcssblk.c:389: error: label 'release_gd' used but not defined
    make[1]: *** [drivers/s390/block/dcssblk.o] Error 1
    make: *** [drivers/s390/block/] Error 2

    Cc: Gerald Schaefer
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

22 Aug, 2008

4 commits

  • Concurrently adding the same segment may lead to duplicate device_register()
    calls, which will trigger an error in kobject code:
    "... don't try to register things with the same name in the same directory".
    This patch adds a check to avoid this.

    Signed-off-by: Gerald Schaefer
    Signed-off-by: Martin Schwidefsky

    Gerald Schaefer
     
  • Calling a ccw driver's notify function without the ccw device lock
    held opens up a race window between discovery and handling of a change
    in the device operational state. As a result, the device driver may
    encounter unexpected device malfunction, leading to out-of-retry
    situations or similar.

    Remove race by extending the ccw device lock from state change
    discovery to the calling of the notify function.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky

    Peter Oberparleiter
     
  • The Perform Subsystem Function/Prepare for Read Subsystem Data
    command requires 12 bytes of parameter data, but the respective data
    structure dasd_psf_prssd_data has a length of 16 bytes.
    Current storage servers ignore the obsolete bytes, but older models
    fail to execute the command and report an incorrect length error.
    This causes the device initilization for these devices to fail.
    To fix this problem we need to correct the dasd_psf_prssd_data
    structure and shorten it to the correct length.

    Reported-by: Ivan Warren
    Reviewed-by: Ivan Warren
    Tested-by: Ivan Warren
    CC: stable
    Signed-off-by: Stefan Weinhuber

    Stefan Weinhuber
     
  • In case of error, functions dasd_kmalloc_request and idal_buffer_alloc
    return an ERR pointer, but never return the NULL pointer. So after a
    call to one of these functions, a NULL test should be replaced by an
    IS_ERR test.

    A simplified version of the semantic patch that makes this change is
    as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @correct_null_test@
    expression x,E;
    statement S1, S2;
    @@
    x =
    (
    dasd_kmalloc_request(...)
    |
    idal_buffer_alloc(...)
    )

    ? x = E;
    //

    Signed-off-by: Julien Brunel
    Signed-off-by: Julia Lawall
    Signed-off-by: Martin Schwidefsky

    Julien Brunel
     

01 Aug, 2008

1 commit

  • When z/VM provides two virtual devices (minidisks) that reside on the
    same real device, both will receive the configuration data from the
    real device and thus get the same uid. To fix this problem, z/VM
    provides an additional configuration data record that allows to
    distinguish between minidisks.
    z/VM APAR VM64273 needs be installed so this fix has an effect.

    Signed-off-by: Stefan Weinhuber
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     

17 Jul, 2008

3 commits


15 Jul, 2008

2 commits

  • * 'bkl-removal' of git://git.lwn.net/linux-2.6: (146 commits)
    IB/umad: BKL is not needed for ib_umad_open()
    IB/uverbs: BKL is not needed for ib_uverbs_open()
    bf561-coreb: BKL unneeded for open()
    Call fasync() functions without the BKL
    snd/PCM: fasync BKL pushdown
    ipmi: fasync BKL pushdown
    ecryptfs: fasync BKL pushdown
    Bluetooth VHCI: fasync BKL pushdown
    tty_io: fasync BKL pushdown
    tun: fasync BKL pushdown
    i2o: fasync BKL pushdown
    mpt: fasync BKL pushdown
    Remove BKL from remote_llseek v2
    Make FAT users happier by not deadlocking
    x86-mce: BKL pushdown
    vmwatchdog: BKL pushdown
    vmcp: BKL pushdown
    via-pmu: BKL pushdown
    uml-random: BKL pushdown
    uml-mmapper: BKL pushdown
    ...

    Linus Torvalds
     
  • Jonathan Corbet