1. 18 May, 2010 31 commits
  2. 17 May, 2010 3 commits
    • NeilBrown's avatar
      md: manage redundancy group in sysfs when changing level. · a64c876f
      NeilBrown authored
      Some levels expect the 'redundancy group' to be present,
      others don't.
      So when we change level of an array we might need to
      add or remove this group.
      
      This requires fixing up the current practice of overloading ->private
      to indicate (when ->pers == NULL) that something needs to be removed.
      So create a new ->to_remove to fill that role.
      
      When changing levels, we may need to add or remove attributes.  When
      changing RAID5 -> RAID6, we both add and remove the same thing.  It is
      important to catch this and optimise it out as the removal is delayed
      until a lock is released, so trying to add immediately would cause
      problems.
      
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      a64c876f
    • NeilBrown's avatar
      md: remove unneeded sysfs files more promptly · b6eb127d
      NeilBrown authored
      When an array is stopped we need to remove some
      sysfs files which are dependent on the type of array.
      
      We need to delay that deletion as deleting them while holding
      reconfig_mutex can lead to deadlocks.
      
      We currently delay them until the array is completely destroyed.
      However it is possible to deactivate and then reactivate the array.
      It is also possible to need to remove sysfs files when changing level,
      which can potentially happen several times before an array is
      destroyed.
      
      So we need to delete these files more promptly: as soon as
      reconfig_mutex is dropped.
      
      We need to ensure this happens before do_md_run can restart the array,
      so we use open_mutex for some extra locking.  This is not deadlock
      prone.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      b6eb127d
    • NeilBrown's avatar
      md/linear: avoid possible oops and array stop · ef2f80ff
      NeilBrown authored
      Since commit ef286f6f
      it has been important that each personality clears
      ->private in the ->stop() function, or sets it to a
      attribute group to be removed.
      linear.c doesn't.  This can sometimes lead to an oops,
      though it doesn't always.
      
      Suitable for 2.6.33-stable and 2.6.34.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Cc: stable@kernel.org
      ef2f80ff
  3. 11 May, 2010 1 commit
    • Dan Williams's avatar
      md: set mddev readonly flag on blkdev BLKROSET ioctl · e2218350
      Dan Williams authored
      When the user sets the block device to readwrite then the mddev should
      follow suit.  Otherwise, the BUG_ON in md_write_start() will be set to
      trigger.
      
      The reverse direction, setting mddev->ro to match a set readonly
      request, can be ignored because the blkdev level readonly flag precludes
      the need to have mddev->ro set correctly.  Nevermind the fact that
      setting mddev->ro to 1 may fail if the array is in use.
      
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      e2218350
  4. 16 Mar, 2010 1 commit
    • NeilBrown's avatar
      md: deal with merge_bvec_fn in component devices better. · 627a2d3c
      NeilBrown authored
      If a component device has a merge_bvec_fn then as we never call it
      we must ensure we never need to.  Currently this is done by setting
      max_sector to 1 PAGE, however this does not stop a bio being created
      with several sub-page iovecs that would violate the merge_bvec_fn.
      
      So instead set max_segments to 1 and set the segment boundary to the
      same as a page boundary to ensure there is only ever one single-page
      segment of IO requested at a time.
      
      This can particularly be an issue when 'xen' is used as it is
      known to submit multiple small buffers in a single bio.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Cc: stable@kernel.org
      627a2d3c
  5. 08 Mar, 2010 1 commit
  6. 07 Mar, 2010 3 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-mrst-for-linus' of... · 322aafa6
      Linus Torvalds authored
      Merge branch 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
        x86, mrst: Fix whitespace breakage in apb_timer.c
        x86, mrst: Fix APB timer per cpu clockevent
        x86, mrst: Remove X86_MRST dependency on PCI_IOAPIC
        x86, olpc: Use pci subarch init for OLPC
        x86, pci: Add arch_init to x86_init abstraction
        x86, mrst: Add Kconfig dependencies for Moorestown
        x86, pci: Exclude Moorestown PCI code if CONFIG_X86_MRST=n
        x86, numaq: Make CONFIG_X86_NUMAQ depend on CONFIG_PCI
        x86, pci: Add sanity check for PCI fixed bar probing
        x86, legacy_irq: Remove duplicate vector assigment
        x86, legacy_irq: Remove left over nr_legacy_irqs
        x86, mrst: Platform clock setup code
        x86, apbt: Moorestown APB system timer driver
        x86, mrst: Add vrtc platform data setup code
        x86, mrst: Add platform timer info parsing code
        x86, mrst: Fill in PCI functions in x86_init layer
        x86, mrst: Add dummy legacy pic to platform setup
        x86/PCI: Moorestown PCI support
        x86, ioapic: Add dummy ioapic functions
        x86, ioapic: Early enable ioapic for timer irq
        ...
      
      Fixed up semantic conflict of new clocksources due to commit
      17622339 ("clocksource: add argument to resume callback").
      322aafa6
    • Linus Torvalds's avatar
      Merge branch 'for-linus/i2c' of git://git.fluff.org/bjdooks/linux · dd04265b
      Linus Torvalds authored
      * 'for-linus/i2c' of git://git.fluff.org/bjdooks/linux:
        i2c: Add support for Xilinx XPS IIC Bus Interface
        i2c: omap: Add support for 16-bit registers
        i2c-pnx: fix setting start/stop condition
        powerpc: doc/dts-bindings: update doc of FSL I2C bindings
        i2c-mpc: add support for the MPC512x processors from Freescale
        i2c-mpc: rename "setclock" initialization functions to "setup"
        i2c-mpc: use __devinit[data] for initialization functions and data
        i2c/imx: don't add probe function to the driver struct
        i2c: Add support for Ux500/Nomadik I2C controller
      dd04265b
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 · 6dc3eb5c
      Linus Torvalds authored
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (66 commits)
        mfd: Fix ucb1x00 build failure for collie_defconfig
        mfd: Fix lpc_sch related depends/selects, fix build error
        gpio: Fix sch_gpio warning
        gpio: add Intel SCH GPIO controller driver
        i2c: convert i2c-isch to platform_device
        mfd: Use completion interrupt for WM831x AUXADC
        mfd: Use completion interrupt for WM835x AUXADC
        mfd: Introduce remove_script function for twl4030
        mfd/mmc: SDHI Kconfig update
        mfd: sh_mobile_sdhi MMC_CAP_MMC_HIGHSPEED support
        gpiolib: Force wm831x GPIOs into GPIO mode when requested
        mfd: Add WM831x revision B support
        gpiolib: Correct debugfs display of WM831x GPIO inversion
        gpiolib: Actually set output state in wm831x_gpio_direction_output()
        tmio_mmc: Balance cell enable()/disable() calls
        tmio_mmc: Remove const from platform data V3
        tmio_mmc: Use 100ms mmc_detect_change() delay
        tmio_mmc: Add MMC_CAP_MMC_HIGHSPEED support V2
        tmio_mmc: Keep card-detect interrupts enabled
        mfd: Add twl6030 base addr for ID0, ID1, ID2
        ...
      6dc3eb5c