1. 28 Oct, 2010 9 commits
    • NeilBrown's avatar
      md: use separate bio pool for each md device. · a167f663
      NeilBrown authored
      bio_clone and bio_alloc allocate from a common bio pool.
      If an md device is stacked with other devices that use this pool, or under
      something like swap which uses the pool, then the multiple calls on
      the pool can cause deadlocks.
      
      So allocate a local bio pool for each md array and use that rather
      than the common pool.
      
      This pool is used both for regular IO and metadata updates.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      a167f663
    • NeilBrown's avatar
      md: change type of first arg to sync_page_io. · 2b193363
      NeilBrown authored
      Currently sync_page_io takes a 'bdev'.
      Every caller passes 'rdev->bdev'.
      We will soon want another field out of the rdev in sync_page_io,
      So just pass the rdev instead of the bdev out of it.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      2b193363
    • NeilBrown's avatar
      md/raid1: perform mem allocation before disabling writes during resync. · 1c4588e9
      NeilBrown authored
      Though this mem alloc is GFP_NOIO an so will not deadlock, it seems
      better to do the allocation before 'raise_barrier' which stops any IO
      requests while the resync proceeds.
      
      raid10 always uses this order, so it is at least consistent to do the
      same in raid1.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      1c4588e9
    • NeilBrown's avatar
      md: use bio_kmalloc rather than bio_alloc when failure is acceptable. · 6746557f
      NeilBrown authored
      bio_alloc can never fail (as it uses a mempool) but an block
      indefinitely, especially if the caller is holding a reference to a
      previously allocated bio.
      
      So these to places which both handle failure and hold multiple bios
      should not use bio_alloc, they should use bio_kmalloc.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      6746557f
    • NeilBrown's avatar
      md: Fix possible deadlock with multiple mempool allocations. · 4e78064f
      NeilBrown authored
      It is not safe to allocate from a mempool while holding an item
      previously allocated from that mempool as that can deadlock when the
      mempool is close to exhaustion.
      
      So don't use a bio list to collect the bios to write to multiple
      devices in raid1 and raid10.
      Instead queue each bio as it becomes available so an unplug will
      activate all previously allocated bios and so a new bio has a chance
      of being allocated.
      
      This means we must set the 'remaining' count to '1' before submitting
      any requests, then when all are submitted, decrement 'remaining' and
      possible handle the write completion at that point.
      Reported-by: default avatarTorsten Kaiser <just.for.lkml@googlemail.com>
      Tested-by: default avatarTorsten Kaiser <just.for.lkml@googlemail.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      4e78064f
    • Tejun Heo's avatar
      md: fix and update workqueue usage · e804ac78
      Tejun Heo authored
      Workqueue usage in md has two problems.
      
      * Flush can be used during or depended upon by memory reclaim, but md
        uses the system workqueue for flush_work which may lead to deadlock.
      
      * md depends on flush_scheduled_work() to achieve exclusion against
        completion of removal of previous instances.  flush_scheduled_work()
        may incur unexpected amount of delay and is scheduled to be removed.
      
      This patch adds two workqueues to md - md_wq and md_misc_wq.  The
      former is guaranteed to make forward progress under memory pressure
      and serves flush_work.  The latter serves as the flush domain for
      other works.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      e804ac78
    • NeilBrown's avatar
      md: use sector_t in bitmap_get_counter · 57dab0bd
      NeilBrown authored
      bitmap_get_counter returns the number of sectors covered
      by the counter in a pass-by-reference variable.
      In some cases this can be very large, so make it a sector_t
      for safety.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      57dab0bd
    • NeilBrown's avatar
      md: remove md_mutex locking. · 4b532c9b
      NeilBrown authored
      lock_kernel calls were recently pushed down into open/release
      functions.
      md doesn't need that protection.
      Then the BKL calls were change to md_mutex.  We don't need those
      either.
      So remove it all.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      4b532c9b
    • NeilBrown's avatar
      md: Fix regression with raid1 arrays without persistent metadata. · d97a41dc
      NeilBrown authored
      A RAID1 which has no persistent metadata, whether internal or
      external, will hang on the first write.
      This is caused by commit  070dc6dd
      In that case, MD_CHANGE_PENDING never gets cleared.
      
      So during md_update_sb, is neither persistent or external,
      clear MD_CHANGE_PENDING.
      
      This is suitable for 2.6.36-stable.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Cc: stable@kernel.org
      d97a41dc
  2. 27 Oct, 2010 17 commits
    • Al Viro's avatar
      fix braino in fs: do not assign default i_ino in new_inode · 12ba8d1e
      Al Viro authored
      usbfs_get_inode() is something completely different...
      
      Bogosity introduced by commit 85fe4025 ("fs: do not assign default
      i_ino in new_inode").
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      12ba8d1e
    • Linus Torvalds's avatar
      Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · c48c43e4
      Linus Torvalds authored
      * 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (476 commits)
        vmwgfx: Implement a proper GMR eviction mechanism
        drm/radeon/kms: fix r6xx/7xx 1D tiling CS checker v2
        drm/radeon/kms: properly compute group_size on 6xx/7xx
        drm/radeon/kms: fix 2D tile height alignment in the r600 CS checker
        drm/radeon/kms/evergreen: set the clear state to the blit state
        drm/radeon/kms: don't poll dac load detect.
        gpu: Add Intel GMA500(Poulsbo) Stub Driver
        drm/radeon/kms: MC vram map needs to be >= pci aperture size
        drm/radeon/kms: implement display watermark support for evergreen
        drm/radeon/kms/evergreen: add some additional safe regs v2
        drm/radeon/r600: fix tiling issues in CS checker.
        drm/i915: Move gpu_write_list to per-ring
        drm/i915: Invalidate the to-ring, flush the old-ring when updating domains
        drm/i915/ringbuffer: Write the value passed in to the tail register
        agp/intel: Restore valid PTE bit for Sandybridge after bdd30729
        drm/i915: Fix flushing regression from 9af90d19
        drm/i915/sdvo: Remove unused encoding member
        i915: enable AVI infoframe for intel_hdmi.c [v4]
        drm/i915: Fix current fb blocking for page flip
        drm/i915: IS_IRONLAKE is synonymous with gen == 5
        ...
      
      Fix up conflicts in
       - drivers/gpu/drm/i915/{i915_gem.c, i915/intel_overlay.c}: due to the
         new simplified stack-based kmap_atomic() interface
       - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c: added .llseek entry due to BKL
         removal cleanups.
      c48c43e4
    • Linus Torvalds's avatar
      Merge branches 'upstream/xenfs' and 'upstream/core' of... · 520045db
      Linus Torvalds authored
      Merge branches 'upstream/xenfs' and 'upstream/core' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen
      
      * 'upstream/xenfs' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:
        xen/privcmd: make privcmd visible in domU
        xen/privcmd: move remap_domain_mfn_range() to core xen code and export.
        privcmd: MMAPBATCH: Fix error handling/reporting
        xenbus: export xen_store_interface for xenfs
        xen/privcmd: make sure vma is ours before doing anything to it
        xen/privcmd: print SIGBUS faults
        xen/xenfs: set_page_dirty is supposed to return true if it dirties
        xen/privcmd: create address space to allow writable mmaps
        xen: add privcmd driver
        xen: add variable hypercall caller
        xen: add xen_set_domain_pte()
        xen: add /proc/xen/xsd_{kva,port} to xenfs
      
      * 'upstream/core' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen: (29 commits)
        xen: include xen/xen.h for definition of xen_initial_domain()
        xen: use host E820 map for dom0
        xen: correctly rebuild mfn list list after migration.
        xen: improvements to VIRQ_DEBUG output
        xen: set up IRQ before binding virq to evtchn
        xen: ensure that all event channels start off bound to VCPU 0
        xen/hvc: only notify if we actually sent something
        xen: don't add extra_pages for RAM after mem_end
        xen: add support for PAT
        xen: make sure xen_max_p2m_pfn is up to date
        xen: limit extra memory to a certain ratio of base
        xen: add extra pages for E820 RAM regions, even if beyond mem_end
        xen: make sure xen_extra_mem_start is beyond all non-RAM e820
        xen: implement "extra" memory to reserve space for pages not present at boot
        xen: Use host-provided E820 map
        xen: don't map missing memory
        xen: defer building p2m mfn structures until kernel is mapped
        xen: add return value to set_phys_to_machine()
        xen: convert p2m to a 3 level tree
        xen: make install_p2mtop_page() static
        ...
      
      Fix up trivial conflict in arch/x86/xen/mmu.c, and fix the use of
      'reserve_early()' - in the new memblock world order it is now
      'memblock_x86_reserve_range()' instead. Pointed out by Jeremy.
      520045db
    • Thomas Hellstrom's avatar
      vmwgfx: Implement a proper GMR eviction mechanism · 135cba0d
      Thomas Hellstrom authored
      Use Ben's new range manager hooks to implement a manager for
      GMRs that manages ids rather than ranges.
      This means we can use the standard TTM code for binding, unbinding and
      eviction.
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      135cba0d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 426e1f5c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)
        split invalidate_inodes()
        fs: skip I_FREEING inodes in writeback_sb_inodes
        fs: fold invalidate_list into invalidate_inodes
        fs: do not drop inode_lock in dispose_list
        fs: inode split IO and LRU lists
        fs: switch bdev inode bdi's correctly
        fs: fix buffer invalidation in invalidate_list
        fsnotify: use dget_parent
        smbfs: use dget_parent
        exportfs: use dget_parent
        fs: use RCU read side protection in d_validate
        fs: clean up dentry lru modification
        fs: split __shrink_dcache_sb
        fs: improve DCACHE_REFERENCED usage
        fs: use percpu counter for nr_dentry and nr_dentry_unused
        fs: simplify __d_free
        fs: take dcache_lock inside __d_path
        fs: do not assign default i_ino in new_inode
        fs: introduce a per-cpu last_ino allocator
        new helper: ihold()
        ...
      426e1f5c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 9e5fca25
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (63 commits)
        IB/qib: clean up properly if pci_set_consistent_dma_mask() fails
        IB/qib: Allow driver to load if PCIe AER fails
        IB/qib: Fix uninitialized pointer if CONFIG_PCI_MSI not set
        IB/qib: Fix extra log level in qib_early_err()
        RDMA/cxgb4: Remove unnecessary KERN_<level> use
        RDMA/cxgb3: Remove unnecessary KERN_<level> use
        IB/core: Add link layer type information to sysfs
        IB/mlx4: Add VLAN support for IBoE
        IB/core: Add VLAN support for IBoE
        IB/mlx4: Add support for IBoE
        mlx4_en: Change multicast promiscuous mode to support IBoE
        mlx4_core: Update data structures and constants for IBoE
        mlx4_core: Allow protocol drivers to find corresponding interfaces
        IB/uverbs: Return link layer type to userspace for query port operation
        IB/srp: Sync buffer before posting send
        IB/srp: Use list_first_entry()
        IB/srp: Reduce number of BUSY conditions
        IB/srp: Eliminate two forward declarations
        IB/mlx4: Signal node desc changes to SM by using FW to generate trap 144
        IB: Replace EXTRA_CFLAGS with ccflags-y
        ...
      9e5fca25
    • Alex Deucher's avatar
      drm/radeon/kms: fix r6xx/7xx 1D tiling CS checker v2 · 8f895da5
      Alex Deucher authored
      broken by:
      drm/radeon/r600: fix tiling issues in CS checker.
      
      v2: only apply it to 1D tiling case.
      Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      8f895da5
    • Randy Dunlap's avatar
      docbook: add idr/ida to kernel-api docbook · 56083ab1
      Randy Dunlap authored
      Add idr/ida to kernel-api docbook.
      Fix typos and kernel-doc notation.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Naohiro Aota <naota@elisp.net>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56083ab1
    • Randy Dunlap's avatar
      docbook: add more wait/wake/completion to device-drivers docbook · ee2f154a
      Randy Dunlap authored
      Add more wait, wake, and completion interfaces to the device-drivers
      docbook.
      
      Fix kernel-doc notation in the added files.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ee2f154a
    • Randy Dunlap's avatar
      documentation: update sysrq.txt magic sysrq keys · 003bb8ab
      Randy Dunlap authored
      Update Documentation/sysrq.txt magic sysrq keys:
      
       - 'g' is for kgdb (not arch-specific);
       - add 2 new uses for 'v', remove the Voyager info;
       - add 'y' info (SPARC-64 specific);
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: "James E.J. Bottomley" <James.Bottomley@suse.de>
      Cc: David Airlie <airlied@linux.ie>
      Acked-by: default avatarAlexander Shishkin <virtuoso@slind.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      003bb8ab
    • Linus Torvalds's avatar
      Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 · d2d8f66b
      Linus Torvalds authored
      * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
        PM / Runtime: fix recursive locking warning of lockdep from rpm_resume()
      d2d8f66b
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 474829e8
      Linus Torvalds authored
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (53 commits)
        ACPI: install ACPI table handler before any dynamic tables being loaded
        ACPI / PM: Blacklist another machine that needs acpi_sleep=nonvs
        ACPI: Page based coalescing of I/O remappings optimization
        ACPI: Convert simple locking to RCU based locking
        ACPI: Pre-map 'system event' related register blocks
        ACPI: Add interfaces for ioremapping/iounmapping ACPI registers
        ACPI: Maintain a list of ACPI memory mapped I/O remappings
        ACPI: Fix ioremap size for MMIO reads and writes
        ACPI / Battery: Return -ENODEV for unknown values in get_property()
        ACPI / PM: Fix reference counting of power resources
        Subject: [PATCH] ACPICA: Fix Scope() op in module level code
        ACPI battery: support percentage battery remaining capacity
        ACPI: Make Embedded Controller command timeout delay configurable
        ACPI dock: move some functions to .init.text
        ACPI: thermal: remove unused limit code
        ACPI: static sleep_states[] and acpi_gts_bfs_check
        ACPI: remove dead code
        ACPI: delete dedicated MAINTAINERS entries for ACPI EC and BATTERY drivers
        ACPI: Only processor needs CPU_IDLE
        ACPICA: Update version to 20101013
        ...
      474829e8
    • Linus Torvalds's avatar
      Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 · 27afe58f
      Linus Torvalds authored
      * 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
        intel_idle: do not use the LAPIC timer for ATOM C2
        intel_idle: add initial Sandy Bridge support
        acpi_idle: delete bogus data from cpuidle_state.power_usage
        intel_idle: delete bogus data from cpuidle_state.power_usage
        intel_idle: simplify test for leave_mm()
      27afe58f
    • Linus Torvalds's avatar
      7eb901e7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · e404f91e
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        arch/tile: convert a BUG_ON to BUILD_BUG_ON
        arch/tile: make ptrace() work properly for TILE-Gx COMPAT mode
        arch/tile: support new info op generated by compiler
        arch/tile: minor whitespace/naming changes for string support files
        arch/tile: enable single-step support for TILE-Gx
        arch/tile: parameterize system PLs to support KVM port
        arch/tile: add Tilera's <arch/sim.h> header as an open-source header
        arch/tile: Bomb C99 comments to C89 comments in tile's <arch/sim_def.h>
        arch/tile: prevent corrupt top frame from causing backtracer runaway
        arch/tile: various top-level Makefile cleanups
        arch/tile: change lower bound on syscall error return to -4095
        arch/tile: properly export __mb_incoherent for modules
        arch/tile: provide a definition of MAP_STACK
        kmemleak: add TILE to the list of supported architectures.
        char: hvc: check for error case
        arch/tile: Add a warning if we try to allocate too much vmalloc memory.
        arch/tile: update some comments to clarify register usage.
        arch/tile: use better "punctuation" for VMSPLIT_3_5G and friends
        arch/tile: Use <asm-generic/syscalls.h>
        tile: replace some BUG_ON checks with BUILD_BUG_ON checks
      e404f91e
    • Linus Torvalds's avatar
      Merge branch 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · 18a043f9
      Linus Torvalds authored
      * 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
        NFS: rename nfs.upcall -> nfs.idmap
        NFS: Fix a compile issue in nfs_root
      18a043f9
    • Linus Torvalds's avatar
      Merge branch 'akpm-incoming-1' · 31453a97
      Linus Torvalds authored
      * akpm-incoming-1: (176 commits)
        scripts/checkpatch.pl: add check for declaration of pci_device_id
        scripts/checkpatch.pl: add warnings for static char that could be static const char
        checkpatch: version 0.31
        checkpatch: statement/block context analyser should look at sanitised lines
        checkpatch: handle EXPORT_SYMBOL for DEVICE_ATTR and similar
        checkpatch: clean up structure definition macro handline
        checkpatch: update copyright dates
        checkpatch: Add additional attribute #defines
        checkpatch: check for incorrect permissions
        checkpatch: ensure kconfig help checks only apply when we are adding help
        checkpatch: simplify and consolidate "missing space after" checks
        checkpatch: add check for space after struct, union, and enum
        checkpatch: returning errno typically should be negative
        checkpatch: handle casts better fixing false categorisation of : as binary
        checkpatch: ensure we do not collapse bracketed sections into constants
        checkpatch: suggest cleanpatch and cleanfile when appropriate
        checkpatch: types may sit on a line on their own
        checkpatch: fix regressions in "fix handling of leading spaces"
        div64_u64(): improve precision on 32bit platforms
        lib/parser: cleanup match_number()
        ...
      31453a97
  3. 26 Oct, 2010 14 commits