1. 28 Jan, 2015 2 commits
    • Ilya Dryomov's avatar
      rbd: drop parent_ref in rbd_dev_unprobe() unconditionally · e69b8d41
      Ilya Dryomov authored
      This effectively reverts the last hunk of 392a9dad ("rbd: detect
      when clone image is flattened").
      
      The problem with parent_overlap != 0 condition is that it's possible
      and completely valid to have an image with parent_overlap == 0 whose
      parent state needs to be cleaned up on unmap.  The next commit, which
      drops the "clone image now standalone" logic, opens up another window
      of opportunity to hit this, but even without it
      
          # cat parent-ref.sh
          #!/bin/bash
          rbd create --image-format 2 --size 1 foo
          rbd snap create foo@snap
          rbd snap protect foo@snap
          rbd clone foo@snap bar
          rbd resize --allow-shrink --size 0 bar
          rbd resize --size 1 bar
          DEV=$(rbd map bar)
          rbd unmap $DEV
      
      leaves rbd_device/rbd_spec/etc and rbd_client along with ceph_client
      hanging around.
      
      My thinking behind calling rbd_dev_parent_put() unconditionally is that
      there shouldn't be any requests in flight at that point in time as we
      are deep into unmap sequence.  Hence, even if rbd_dev_unparent() caused
      by flatten is delayed by in-flight requests, it will have finished by
      the time we reach rbd_dev_unprobe() caused by unmap, thus turning
      unconditional rbd_dev_parent_put() into a no-op.
      
      Fixes: http://tracker.ceph.com/issues/10352
      
      Cc: stable@vger.kernel.org # 3.11+
      Signed-off-by: default avatarIlya Dryomov <idryomov@redhat.com>
      Reviewed-by: default avatarJosh Durgin <jdurgin@redhat.com>
      Reviewed-by: default avatarAlex Elder <elder@linaro.org>
      e69b8d41
    • Ilya Dryomov's avatar
      rbd: fix rbd_dev_parent_get() when parent_overlap == 0 · ae43e9d0
      Ilya Dryomov authored
      The comment for rbd_dev_parent_get() said
      
          * We must get the reference before checking for the overlap to
          * coordinate properly with zeroing the parent overlap in
          * rbd_dev_v2_parent_info() when an image gets flattened.  We
          * drop it again if there is no overlap.
      
      but the "drop it again if there is no overlap" part was missing from
      the implementation.  This lead to absurd parent_ref values for images
      with parent_overlap == 0, as parent_ref was incremented for each
      img_request and virtually never decremented.
      
      Fix this by leveraging the fact that refresh path calls
      rbd_dev_v2_parent_info() under header_rwsem and use it for read in
      rbd_dev_parent_get(), instead of messing around with atomics.  Get rid
      of barriers in rbd_dev_v2_parent_info() while at it - I don't see what
      they'd pair with now and I suspect we are in a pretty miserable
      situation as far as proper locking goes regardless.
      
      Cc: stable@vger.kernel.org # 3.11+
      Signed-off-by: default avatarIlya Dryomov <idryomov@redhat.com>
      Reviewed-by: default avatarJosh Durgin <jdurgin@redhat.com>
      Reviewed-by: default avatarAlex Elder <elder@linaro.org>
      ae43e9d0
  2. 26 Jan, 2015 8 commits
    • Linus Torvalds's avatar
      Linux 3.19-rc6 · 26bc420b
      Linus Torvalds authored
      26bc420b
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 14746306
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "Hopefully the last round of fixes for 3.19
      
         - regression fix for the LDT changes
         - regression fix for XEN interrupt handling caused by the APIC
           changes
         - regression fixes for the PAT changes
         - last minute fixes for new the MPX support
         - regression fix for 32bit UP
         - fix for a long standing relocation issue on 64bit tagged for stable
         - functional fix for the Hyper-V clocksource tagged for stable
         - downgrade of a pr_err which tends to confuse users
      
        Looks a bit on the large side, but almost half of it are valuable
        comments"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc: Change Fast TSC calibration failed from error to info
        x86/apic: Re-enable PCI_MSI support for non-SMP X86_32
        x86, mm: Change cachemode exports to non-gpl
        x86, tls: Interpret an all-zero struct user_desc as "no segment"
        x86, tls, ldt: Stop checking lm in LDT_empty
        x86, mpx: Strictly enforce empty prctl() args
        x86, mpx: Fix potential performance issue on unmaps
        x86, mpx: Explicitly disable 32-bit MPX support on 64-bit kernels
        x86, hyperv: Mark the Hyper-V clocksource as being continuous
        x86: Don't rely on VMWare emulating PAT MSR correctly
        x86, irq: Properly tag virtualization entry in /proc/interrupts
        x86, boot: Skip relocs when load address unchanged
        x86/xen: Override ACPI IRQ management callback __acpi_unregister_gsi
        ACPI: pci: Do not clear pci_dev->irq in acpi_pci_irq_disable()
        x86/xen: Treat SCI interrupt as normal GSI interrupt
      14746306
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4d2f0ef1
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "From the irqchip departement you get:
      
         - regression fix for omap-intc
      
         - regression fix for atmel-aic-common
      
         - functional correctness fix for hip04
      
         - type mismatch fix for gic-v3-its
      
         - proper error pointer check for mtd-sysirq
      
        Mostly one and two liners except for the omap regression fix which is
        slightly larger than desired"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: atmel-aic-common: Prevent clobbering of priority when changing IRQ type
        irqchip: omap-intc: Fix legacy DMA regression
        irqchip: gic-v3-its: Fix use of max with decimal constant
        irqchip: hip04: Initialize hip04_cpu_map to 0xffff
        irqchip: mtk-sysirq: Use IS_ERR() instead of NULL pointer check
      4d2f0ef1
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b73f0c8f
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "A set of small fixes:
      
         - regression fix for exynos_mct clocksource
      
         - trivial build fix for kona clocksource
      
         - functional one liner fix for the sh_tmu clocksource
      
         - two validation fixes to prevent (root only) data corruption in the
           kernel via settimeofday and adjtimex.  Tagged for stable"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        time: adjtimex: Validate the ADJ_FREQUENCY values
        time: settimeofday: Validate the values of tv from user
        clocksource: sh_tmu: Set cpu_possible_mask to fix SMP broadcast
        clocksource: kona: fix __iomem annotation
        clocksource: exynos_mct: Fix bitmask regression for exynos4_mct_write
      b73f0c8f
    • Linus Torvalds's avatar
      Merge tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 71a59b12
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A week's worth of fixes for various ARM platforms.  Diff wise, the
        largest fix is for OMAP to deal with how GIC now registers interrupts
        (irq_domain_add_legacy() -> irq_domain_add_linear() changes).
      
        Besides this, a few more renesas platforms needed the GIC instatiation
        done for legacy boards.  There's also a fix that disables coherency of
        mvebu due to issues, and a few other smaller fixes"
      
      * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm64: dts: add baud rate to Juno stdout-path
        ARM: dts: imx25: Fix PWM "per" clocks
        bus: mvebu-mbus: fix support of MBus window 13
        Merge tag 'mvebu-fixes-3.19-3' of git://git.infradead.org/linux-mvebu into fixes
        ARM: mvebu: completely disable hardware I/O coherency
        ARM: OMAP: Work around hardcoded interrupts
        ARM: shmobile: r8a7779: Instantiate GIC from C board code in legacy builds
        ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds
        arm: boot: dts: dra7: enable dwc3 suspend PHY quirk
      71a59b12
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 80a75554
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "A couple of fixes - deadlock in CIFS and build breakage in cris serial
        driver (resurfaced f_dentry in there)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        VFS: Convert file->f_dentry->d_inode to file_inode()
        fix deadlock in cifs_ioctl_clone()
      80a75554
    • Linus Torvalds's avatar
      Merge tag 'dm-3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · bfc835b5
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
       "Two stable fixes for dm-cache and one 3.19 DM core fix:
      
         - fix potential for dm-cache metadata corruption via stale metadata
           buffers being used when switching an inactive cache table to
           active; this could occur due to each table having it's own bufio
           client rather than sharing the client between tables.
      
         - fix dm-cache target to properly account for discard IO while
           suspending otherwise IO quiescing could complete prematurely.
      
         - fix DM core's handling of multiple internal suspends by maintaining
           an 'internal_suspend_count' and only resuming the device when this
           count drops to zero"
      
      * tag 'dm-3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: fix handling of multiple internal suspends
        dm cache: fix problematic dual use of a single migration count variable
        dm cache: share cache-metadata object across inactive and active DM tables
      bfc835b5
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 8e908e99
      Linus Torvalds authored
      Pull two block layer fixes from Jens Axboe:
       "Two small patches that should make it into 3.19:
      
         - a fixup from me for NVMe, making the cq_vector a signed variable.
           Otherwise our -1 comparison fails, and commit 2b25d981 doesn't
           do what it was supposed to.
      
         - a fixup for the hotplug handling for blk-mq from Ming Lei, using
           the proper kobject referencing to ensure we release resources at
           the right time"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq: fix hctx/ctx kobject use-after-free
        NVMe: cq_vector should be signed
      8e908e99
  3. 24 Jan, 2015 11 commits
  4. 23 Jan, 2015 19 commits