1. 15 May, 2013 1 commit
    • Tejun Heo's avatar
      workqueue: don't perform NUMA-aware allocations on offline nodes in wq_numa_init() · 1be0c25d
      Tejun Heo authored
      wq_numa_init() builds per-node cpumasks which are later used to make
      unbound workqueues NUMA-aware.  The cpumasks are allocated using
      alloc_cpumask_var_node() for all possible nodes.  Unfortunately, on
      machines with off-line nodes, this leads to NUMA-aware allocations on
      existing bug offline nodes, which in turn triggers BUG in the memory
      allocation code.
      
      Fix it by using NUMA_NO_NODE for cpumask allocations for offline
      nodes.
      
        kernel BUG at include/linux/gfp.h:323!
        invalid opcode: 0000 [#1] SMP
        Modules linked in:
        CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0+ #1
        Hardware name: ProLiant BL465c G7, BIOS A19 12/10/2011
        task: ffff880234608000 ti: ffff880234602000 task.ti: ffff880234602000
        RIP: 0010:[<ffffffff8117495d>]  [<ffffffff8117495d>] new_slab+0x2ad/0x340
        RSP: 0000:ffff880234603bf8  EFLAGS: 00010246
        RAX: 0000000000000000 RBX: ffff880237404b40 RCX: 00000000000000d0
        RDX: 0000000000000001 RSI: 0000000000000003 RDI: 00000000002052d0
        RBP: ffff880234603c28 R08: 0000000000000000 R09: 0000000000000001
        R10: 0000000000000001 R11: ffffffff812e3aa8 R12: 0000000000000001
        R13: ffff8802378161c0 R14: 0000000000030027 R15: 00000000000040d0
        FS:  0000000000000000(0000) GS:ffff880237800000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: ffff88043fdff000 CR3: 00000000018d5000 CR4: 00000000000007f0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
        Stack:
         ffff880234603c28 0000000000000001 00000000000000d0 ffff8802378161c0
         ffff880237404b40 ffff880237404b40 ffff880234603d28 ffffffff815edba1
         ffff880237816140 0000000000000000 ffff88023740e1c0
        Call Trace:
         [<ffffffff815edba1>] __slab_alloc+0x330/0x4f2
         [<ffffffff81174b25>] kmem_cache_alloc_node_trace+0xa5/0x200
         [<ffffffff812e3aa8>] alloc_cpumask_var_node+0x28/0x90
         [<ffffffff81a0bdb3>] wq_numa_init+0x10d/0x1be
         [<ffffffff81a0bec8>] init_workqueues+0x64/0x341
         [<ffffffff810002ea>] do_one_initcall+0xea/0x1a0
         [<ffffffff819f1f31>] kernel_init_freeable+0xb7/0x1ec
         [<ffffffff815d50de>] kernel_init+0xe/0xf0
         [<ffffffff815ff89c>] ret_from_fork+0x7c/0xb0
        Code: 45  84 ac 00 00 00 f0 41 80 4d 00 40 e9 f6 fe ff ff 66 0f 1f 84 00 00 00 00 00 e8 eb 4b ff ff 49 89 c5 e9 05 fe ff ff <0f> 0b 4c 8b 73 38 44 89 ff 81 cf 00 00 20 00 4c 89 f6 48 c1 ee
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-and-Tested-by: default avatarLingzhu Xiang <lxiang@redhat.com>
      1be0c25d
  2. 14 May, 2013 2 commits
  3. 10 May, 2013 37 commits
    • Tejun Heo's avatar
      workqueue: workqueue_congested() shouldn't translate WORK_CPU_UNBOUND into node number · d3251859
      Tejun Heo authored
      df2d5ae4 ("workqueue: map an unbound workqueues to multiple per-node
      pool_workqueues") made unbound workqueues to map to multiple per-node
      pool_workqueues and accordingly updated workqueue_contested() so that,
      for unbound workqueues, it maps the specified @cpu to the NUMA node
      number to obtain the matching pool_workqueue to query the congested
      state.
      
      Before this change, workqueue_congested() ignored @cpu for unbound
      workqueues as there was only one pool_workqueue and some users
      (fscache) called it with WORK_CPU_UNBOUND.  After the commit, this
      causes the following oops as WORK_CPU_UNBOUND gets translated to
      garbage by cpu_to_node().
      
        BUG: unable to handle kernel paging request at ffff8803598d98b8
        IP: [<ffffffff81043b7e>] unbound_pwq_by_node+0xa1/0xfa
        PGD 2421067 PUD 0
        Oops: 0000 [#1] SMP
        CPU: 1 PID: 2689 Comm: cat Tainted: GF            3.9.0-fsdevel+ #4
        task: ffff88003d801040 ti: ffff880025806000 task.ti: ffff880025806000
        RIP: 0010:[<ffffffff81043b7e>]  [<ffffffff81043b7e>] unbound_pwq_by_node+0xa1/0xfa
        RSP: 0018:ffff880025807ad8  EFLAGS: 00010202
        RAX: 0000000000000001 RBX: ffff8800388a2400 RCX: 0000000000000003
        RDX: ffff880025807fd8 RSI: ffffffff81a31420 RDI: ffff88003d8016e0
        RBP: ffff880025807ae8 R08: ffff88003d801730 R09: ffffffffa00b4898
        R10: ffffffff81044217 R11: ffff88003d801040 R12: 0000000064206e97
        R13: ffff880036059d98 R14: ffff880038cc8080 R15: ffff880038cc82d0
        FS:  00007f21afd9c740(0000) GS:ffff88003d100000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: ffff8803598d98b8 CR3: 000000003df49000 CR4: 00000000000007e0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
        Stack:
         ffff8800388a2400 0000000000000002 ffff880025807b18 ffffffff810442ce
         ffffffff81044217 ffff880000000002 ffff8800371b4080 ffff88003d112ec0
         ffff880025807b38 ffffffffa00810b0 ffff880036059d88 ffff880036059be8
        Call Trace:
         [<ffffffff810442ce>] workqueue_congested+0xb7/0x12c
         [<ffffffffa00810b0>] fscache_enqueue_object+0xb2/0xe8 [fscache]
         [<ffffffffa007facd>] __fscache_acquire_cookie+0x3b9/0x56c [fscache]
         [<ffffffffa00ad8fe>] nfs_fscache_set_inode_cookie+0xee/0x132 [nfs]
         [<ffffffffa009e112>] do_open+0x9/0xd [nfs]
         [<ffffffff810e804a>] do_dentry_open+0x175/0x24b
         [<ffffffff810e8298>] finish_open+0x41/0x51
      
      Fix it by using smp_processor_id() if @cpu is WORK_CPU_UNBOUND.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-and-Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      d3251859
    • Linus Torvalds's avatar
      Merge branch 'for-3.10' of git://linux-nfs.org/~bfields/linux · 2dbd3cac
      Linus Torvalds authored
      Pull nfsd fixes from Bruce Fields:
       "Small fixes for two bugs and two warnings"
      
      * 'for-3.10' of git://linux-nfs.org/~bfields/linux:
        nfsd: fix oops when legacy_recdir_name_error is passed a -ENOENT error
        SUNRPC: fix decoding of optional gss-proxy xdr fields
        SUNRPC: Refactor gssx_dec_option_array() to kill uninitialized warning
        nfsd4: don't allow owner override on 4.1 CLAIM_FH opens
      2dbd3cac
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · a77c0058
      Linus Torvalds authored
      Pull x86 platform drivers from Matthew Garrett:
       "Small set of updates, mainly trivial bugfixes and some small updates
        to deal with newer hardware.
      
        There's also a new driver that allows qemu guests to notify the
        hypervisor that they've just paniced, which seems useful."
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
        Add support for fan button on Ideapad Z580
        pvpanic: pvpanic device driver
        asus-nb-wmi: set wapf=4 for ASUSTeK COMPUTER INC. X75A
        drivers: platform: x86: Use PTR_RET function
        sony-laptop: SVS151290S kbd backlight and gfx switch support
        hp-wmi: add more definitions for new event_id's
        dell-laptop: Fix krealloc() misuse in parse_da_table()
        hp_accel: Ignore the error from lis3lv02d_poweron() at resume
        dell: add new dell WMI format for the AIO machines
      a77c0058
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 3644bc2e
      Linus Torvalds authored
      Pull stray syscall bits from Al Viro:
       "Several syscall-related commits that were missing from the original"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
        switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE
        unicore32: just use mmap_pgoff()...
        unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE
        x86, vm86: fix VM86 syscalls: use SYSCALL_DEFINEx(...)
      3644bc2e
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-3.10-rc1-ablkcipher' of... · 6fad8d02
      Linus Torvalds authored
      Merge tag 'ecryptfs-3.10-rc1-ablkcipher' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull eCryptfs update from Tyler Hicks:
       "Improve performance when AES-NI (and most likely other crypto
        accelerators) is available by moving to the ablkcipher crypto API.
        The improvement is more apparent on faster storage devices.
      
        There's no noticeable change when hardware crypto is not available"
      
      * tag 'ecryptfs-3.10-rc1-ablkcipher' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        eCryptfs: Use the ablkcipher crypto API
      6fad8d02
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20130509' of git://git.infradead.org/~dwmw2/random-2.6 · f741df1f
      Linus Torvalds authored
      Pull misc fixes from David Woodhouse:
       "This is some miscellaneous cleanups that don't really belong anywhere
        else (or were ignored), that have been sitting in linux-next for some
        time.  Two of them are fixes resulting from my audit of krealloc()
        usage that don't seem to have elicited any response when I posted
        them, and the other three are patches from Artem removing dead code."
      
      * tag 'for-linus-20130509' of git://git.infradead.org/~dwmw2/random-2.6:
        pcmcia: remove RPX board stuff
        m68k: remove rpxlite stuff
        pcmcia: remove Motorola MBX860 support
        params: Fix potential memory leak in add_sysfs_param()
        dell-laptop: Fix krealloc() misuse in parse_da_table()
      f741df1f
    • Linus Torvalds's avatar
      Merge tag 'kvm-3.10-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm · c67723eb
      Linus Torvalds authored
      Pull kvm fixes from Gleb Natapov:
       "Most of the fixes are in the emulator since now we emulate more than
        we did before for correctness sake we see more bugs there, but there
        is also an OOPS fixed and corruption of xcr0 register."
      
      * tag 'kvm-3.10-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: emulator: emulate SALC
        KVM: emulator: emulate XLAT
        KVM: emulator: emulate AAM
        KVM: VMX: fix halt emulation while emulating invalid guest sate
        KVM: Fix kvm_irqfd_init initialization
        KVM: x86: fix maintenance of guest/host xcr0 state
      c67723eb
    • Linus Torvalds's avatar
      Merge tag 'dm-3.10-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · ec667158
      Linus Torvalds authored
      Pull device-mapper updates from Alasdair Kergon:
       "Allow devices that hold metadata for the device-mapper thin
        provisioning target to be extended easily; allow WRITE SAME on
        multipath devices; an assortment of little fixes and clean-ups."
      
      * tag 'dm-3.10-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm: (21 commits)
        dm cache: set config value
        dm cache: move config fns
        dm thin: generate event when metadata threshold passed
        dm persistent metadata: add space map threshold callback
        dm persistent data: add threshold callback to space map
        dm thin: detect metadata device resizing
        dm persistent data: support space map resizing
        dm thin: open dev read only when possible
        dm thin: refactor data dev resize
        dm cache: replace memcpy with struct assignment
        dm cache: fix typos in comments
        dm cache policy: fix description of lookup fn
        dm: document iterate_devices
        dm persistent data: fix error message typos
        dm cache: tune migration throttling
        dm mpath: enable WRITE SAME support
        dm table: fix write same support
        dm bufio: avoid a possible __vmalloc deadlock
        dm snapshot: fix error return code in snapshot_ctr
        dm cache: fix error return code in cache_create
        ...
      ec667158
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · f755407d
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - fix usage of sleeping lock in atomic context from Jiri Kosina
      
       - build fix for hid-steelseries under certain .config setups by Simon Wood
      
       - simple mismerge fix from Fernando Luis Vázquez Cao
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: debug: fix RCU preemption issue
        HID: hid-steelseries fix led class build issue
        HID: reintroduce fix-up for certain Sony RF receivers
      f755407d
    • Linus Torvalds's avatar
      Merge tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 05a88a43
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This contains small fixes since the previous pull request:
      
         - A few regression fixes and small updates of HD-audio
      
         - Yet another fix for Haswell HDMI audio
      
         - A copule of trivial fixes in ASoC McASP, DPAM and WM8994"
      
      * tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        Revert "ALSA: hda - Don't set up active streams twice"
        ALSA: Add comment for control TLV API
        ALSA: hda - Apply pin-enablement workaround to all Haswell HDMI codecs
        ALSA: HDA: Fix Oops caused by dereference NULL pointer
        ALSA: mips/sgio2audio: Remove redundant platform_set_drvdata()
        ALSA: mips/hal2: Remove redundant platform_set_drvdata()
        ALSA: hda - Fix 3.9 regression of EAPD init on Conexant codecs
        sound: Fix make allmodconfig on MIPS
        ALSA: hda - Fix system panic when DMA > 40 bits for Nvidia audio controllers
        ALSA: atmel: Remove redundant platform_set_drvdata()
        ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
        ASoC: wm8994: missing break in wm8994_aif3_hw_params()
        ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
        ASoC: dapm: use clk_prepare_enable and clk_disable_unprepare
      05a88a43
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · daf799cc
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
      
       - More work on DT support for various platforms
      
       - Various fixes that were to late to make it straight into 3.9
      
       - Improved platform support, in particular the Netlogic XLR and
         BCM63xx, and the SEAD3 and Malta eval boards.
      
       - Support for several Ralink SOC families.
      
       - Complete support for the microMIPS ASE which basically reencodes the
         existing MIPS32/MIPS64 ISA to use non-constant size instructions.
      
       - Some fallout from LTO work which remove old cruft and will generally
         make the MIPS kernel easier to maintain and resistant to compiler
         optimization, even in absence of LTO.
      
       - KVM support.  While MIPS has announced hardware virtualization
         extensions this KVM extension uses trap and emulate mode for
         virtualization of MIPS32.  More KVM work to add support for VZ
         hardware virtualizaiton extensions and MIPS64 will probably already
         be merged for 3.11.
      
      Most of this has been sitting in -next for a long time.  All defconfigs
      have been build or run time tested except three for which fixes are being
      sent by other maintainers.
      
      Semantic conflict with kvm updates done as per Ralf
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (118 commits)
        MIPS: Add new GIC clockevent driver.
        MIPS: Formatting clean-ups for clocksources.
        MIPS: Refactor GIC clocksource code.
        MIPS: Move 'gic_frequency' to common location.
        MIPS: Move 'gic_present' to common location.
        MIPS: MIPS16e: Add unaligned access support.
        MIPS: MIPS16e: Support handling of delay slots.
        MIPS: MIPS16e: Add instruction formats.
        MIPS: microMIPS: Optimise 'strnlen' core library function.
        MIPS: microMIPS: Optimise 'strlen' core library function.
        MIPS: microMIPS: Optimise 'strncpy' core library function.
        MIPS: microMIPS: Optimise 'memset' core library function.
        MIPS: microMIPS: Add configuration option for microMIPS kernel.
        MIPS: microMIPS: Disable LL/SC and fix linker bug.
        MIPS: microMIPS: Add vdso support.
        MIPS: microMIPS: Add unaligned access support.
        MIPS: microMIPS: Support handling of delay slots.
        MIPS: microMIPS: Add support for exception handling.
        MIPS: microMIPS: Floating point support.
        MIPS: microMIPS: Fix macro naming in micro-assembler.
        ...
      daf799cc
    • Linus Torvalds's avatar
      Merge tag 'arc-v3.10-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 6019958d
      Linus Torvalds authored
      Pull second set of arc arch updates from Vineet Gupta:
       "Aliasing VIPT dcache support for ARC
      
        I'm satisified with testing, specially with fuse which has
        historically given grief to VIPT arches (ARM/PARISC...)"
      
      * tag 'arc-v3.10-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: [TB10x] Remove GENERIC_GPIO
        ARC: [mm] Aliasing VIPT dcache support 4/4
        ARC: [mm] Aliasing VIPT dcache support 3/4
        ARC: [mm] Aliasing VIPT dcache support 2/4
        ARC: [mm] Aliasing VIPT dcache support 1/4
        ARC: [mm] refactor the core (i|d)cache line ops loops
        ARC: [mm] serious bug in vaddr based icache flush
      6019958d
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 977b58e1
      Linus Torvalds authored
      Pull m68knommu updates from Greg Ungerer:
       "The bulk of the changes are generalizing the ColdFire v3 core support
        and adding in 537x CPU support.  Also a couple of other bug fixes, one
        to fix a reintroduction of a past bug in the romfs filesystem nommu
        support."
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: enable Timer on coldfire 532x
        m68knommu: fix ColdFire 5373/5329 QSPI base address
        m68knommu: add support for configuring a Freescale M5373EVB board
        m68knommu: add support for the ColdFire 537x family of CPUs
        m68knommu: make ColdFire M532x platform support more v3 generic
        m68knommu: create and use a common M53xx ColdFire class of CPUs
        m68k: remove unused asm/dbg.h
        m68k: Set ColdFire ACR1 cache mode depending on kernel configuration
        romfs: fix nommu map length to keep inside filesystem
        m68k: clean up unused "config ROMVECSIZE"
      977b58e1
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/realmz/blackfin-linux · f5b8fcb4
      Linus Torvalds authored
      Pull blackfin updates from Steven Miao.
      
      * tag 'for-linus' of git://github.com/realmz/blackfin-linux:
        bfin cache: dcplb map: add 16M dcplb map for BF60x
        blackfin: smp: fix smp build after drop asm/system.h
        blackfin: fix bootup core clock and system clock display
        Platform Nand: Set the GPIO for NAND read as input
        blackfin: rename vmImage to uImage after we move to buildroot
        blackfin: twi: Remove bogus #endif
        bf609: rsi: Add bf609 rsi MMR macro and board platform data.
        blackfin: dmc: Improve DDR2 write through in DMC effict controller.
      f5b8fcb4
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze · a1f0bccc
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek.
      
      * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Enable IRQ in arch_cpu_idle
        microblaze: Fix uaccess_ok macro
        microblaze: Add support for new cpu versions and target architecture
        microblaze: Do not select OPT_LIB_ASM by default
        microblaze: Fix initrd support
        microblaze: Do not use r6 in head.S
        microblaze: pci: Remove duplicated header
        microblaze: Set the default irq_domain
        microblaze: pci: Remove duplicated include from pci-common.c
      a1f0bccc
    • Joe Thornber's avatar
      dm cache: set config value · 2f14f4b5
      Joe Thornber authored
      Share configuration option processing code between the dm cache
      ctr and message functions.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      2f14f4b5
    • Alasdair G Kergon's avatar
      dm cache: move config fns · 2c73c471
      Alasdair G Kergon authored
      Move process_config_option() in dm-cache-target.c to make the
      next patch more readable.
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      2c73c471
    • Joe Thornber's avatar
      dm thin: generate event when metadata threshold passed · ac8c3f3d
      Joe Thornber authored
      Generate a dm event when the amount of remaining thin pool metadata
      space falls below a certain level.
      
      The threshold is taken to be a quarter of the size of the metadata
      device with a minimum threshold of 4MB.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      ac8c3f3d
    • Joe Thornber's avatar
      dm persistent metadata: add space map threshold callback · 2fc48021
      Joe Thornber authored
      Add a threshold callback to dm persistent data space maps.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      2fc48021
    • Joe Thornber's avatar
      dm persistent data: add threshold callback to space map · 7c3d3f2a
      Joe Thornber authored
      Add a threshold callback function to the persistent data space map
      interface for a subsequent patch to use.
      
      dm-thin and dm-cache are interested in knowing when they're getting
      low on metadata or data blocks.  This patch introduces a new method
      for registering a callback against a threshold.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      7c3d3f2a
    • Joe Thornber's avatar
      dm thin: detect metadata device resizing · 24347e95
      Joe Thornber authored
      Allow the dm thin pool metadata device to be extended.
      
      Whenever a pool is resumed, detect whether the size of the metadata
      device has increased, and if so, extend the metadata to use the new
      space.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      24347e95
    • Joe Thornber's avatar
      dm persistent data: support space map resizing · 1921c56d
      Joe Thornber authored
      Support extending a dm persistent data metadata space map.
      
      The extend itself is implemented by switching back to the boostrap
      allocator and pointing to the new space.  The extra bitmap indexes are
      then allocated from the new space, and finally we switch back to the
      proper space map ops and tweak the reference counts.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      1921c56d
    • Joe Thornber's avatar
      dm thin: open dev read only when possible · 5d0db96d
      Joe Thornber authored
      If a thin pool is created in read-only-metadata mode then only open the
      metadata device read-only.
      
      Previously it was always opened with FMODE_READ | FMODE_WRITE.
      
      (Note that dm_get_device() still allows read-only dm devices to be used
      read-write at the moment: If I create a read-only linear device for the
      metadata, via dmsetup load --readonly, then I can still create a rw pool
      out of it.)
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      5d0db96d
    • Joe Thornber's avatar
      dm thin: refactor data dev resize · b17446df
      Joe Thornber authored
      Refactor device size functions in preparation for similar metadata
      device resizing functions.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      b17446df
    • Joe Thornber's avatar
      dm cache: replace memcpy with struct assignment · 8c5008fa
      Joe Thornber authored
      Use struct assignment rather than memcpy in dm cache.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      8c5008fa
    • Joe Thornber's avatar
      dm cache: fix typos in comments · aeed1420
      Joe Thornber authored
      Fix up some typos in dm-cache comments.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      aeed1420
    • Alasdair G Kergon's avatar
      dm cache policy: fix description of lookup fn · e12c1fd9
      Alasdair G Kergon authored
      Correct the documented requirement on the return code from dm cache policy
      lookup functions stated in the policy module header file.
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      e12c1fd9
    • Alasdair G Kergon's avatar
      dm: document iterate_devices · 058ce5ca
      Alasdair G Kergon authored
      Document iterate_devices in device-mapper.h.
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      058ce5ca
    • Joe Thornber's avatar
      dm persistent data: fix error message typos · 88a488f6
      Joe Thornber authored
      Fix some typos in dm-space-map-metadata.c error messages.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      88a488f6
    • Joe Thornber's avatar
      dm cache: tune migration throttling · f8350daf
      Joe Thornber authored
      Tune the dm cache migration throttling.
      
      i) Issue a tick every second, just in case there's no i/o going through.
      
      ii) Drop the migration threshold right down to something suitable for
      background work.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      f8350daf
    • Mike Snitzer's avatar
      dm mpath: enable WRITE SAME support · 042bcef8
      Mike Snitzer authored
      Enable WRITE SAME support in dm multipath.  As far as multipath is
      concerned it is just another write request.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Tested-by: default avatarBharata B Rao <bharata.rao@gmail.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      042bcef8
    • Mike Snitzer's avatar
      dm table: fix write same support · dc019b21
      Mike Snitzer authored
      If device_not_write_same_capable() returns true then the iterate_devices
      loop in dm_table_supports_write_same() should return false.
      Reported-by: default avatarBharata B Rao <bharata.rao@gmail.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # v3.8+
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      dc019b21
    • Mikulas Patocka's avatar
      dm bufio: avoid a possible __vmalloc deadlock · 502624bd
      Mikulas Patocka authored
      This patch uses memalloc_noio_save to avoid a possible deadlock in
      dm-bufio.  (it could happen only with large block size, at most
      PAGE_SIZE << MAX_ORDER (typically 8MiB).
      
      __vmalloc doesn't fully respect gfp flags. The specified gfp flags are
      used for allocation of requested pages, structures vmap_area, vmap_block
      and vm_struct and the radix tree nodes.
      
      However, the kernel pagetables are allocated always with GFP_KERNEL.
      Thus the allocation of pagetables can recurse back to the I/O layer and
      cause a deadlock.
      
      This patch uses the function memalloc_noio_save to set per-process
      PF_MEMALLOC_NOIO flag and the function memalloc_noio_restore to restore
      it. When this flag is set, all allocations in the process are done with
      implied GFP_NOIO flag, thus the deadlock can't happen.
      
      This should be backported to stable kernels, but they don't have the
      PF_MEMALLOC_NOIO flag and memalloc_noio_save/memalloc_noio_restore
      functions. So, PF_MEMALLOC should be set and restored instead.
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      502624bd
    • Wei Yongjun's avatar
      dm snapshot: fix error return code in snapshot_ctr · 09e8b813
      Wei Yongjun authored
      Return -ENOMEM instead of success if unable to allocate pending
      exception mempool in snapshot_ctr.
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      09e8b813
    • Wei Yongjun's avatar
      dm cache: fix error return code in cache_create · fa4d683a
      Wei Yongjun authored
      Return -ENOMEM if memory allocation fails in cache_create
      instead of 0 (to avoid NULL pointer dereference).
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      fa4d683a
    • Mike Snitzer's avatar
      dm stripe: fix regression in stripe_width calculation · d793e684
      Mike Snitzer authored
      Fix a regression in the calculation of the stripe_width in the
      dm stripe target which led to incorrect processing of device limits.
      
      The stripe_width is the stripe device length divided by the number of
      stripes.  The group of commits in the range f14fa693 ("dm stripe: fix
      size test") to eb850de6 ("dm stripe: support for non power of 2
      chunksize") interfered with each other (a merging error) and led to the
      stripe_width being set incorrectly to the stripe device length divided by
      chunk_size * stripe_count.
      
      For example, a stripe device's table with: 0 33553920 striped 3 512 ...
      should result in a stripe_width of 11184640 (33553920 / 3), but due to
      the bug it was getting set to 21845 (33553920 / (512 * 3)).
      
      The impact of this bug is that device topologies that previously worked
      fine with the stripe target are no longer considered valid.  In
      particular, there is a higher risk of seeing this issue if one of the
      stripe devices has a 4K logical block size.  Resulting in an error
      message like this:
      "device-mapper: table: 253:4: len=21845 not aligned to h/w logical block size 4096 of dm-1"
      
      The fix is to swap the order of the divisions and to use a temporary
      variable for the second one, so that width retains the intended
      value.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # 3.6+
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      d793e684
    • Takashi Iwai's avatar
      Revert "ALSA: hda - Don't set up active streams twice" · 6c35ae3c
      Takashi Iwai authored
      This reverts commit affdb62b.
      
      The commit introduced a regression with AD codecs where the stream is
      always clean up.  Since the patch is just a minor optimization and
      reverting the commit fixes the issue, let's just revert it.
      Reported-and-tested-by: default avatarMichael Burian <michael.burian@sbg.at>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6c35ae3c