1. 13 9月, 2013 2 次提交
  2. 11 9月, 2013 2 次提交
  3. 10 9月, 2013 26 次提交
    • N
      ARM: vexpress: allow dcscb and tc2_pm in a combined ARMv6+v7 build · 3c78d113
      Nicolas Pitre 提交于
      This fixes the following build error:
      
      /tmp/cce439dZ.s: Assembler messages:
      /tmp/cce439dZ.s:506: Error: selected processor does not support ARM mode `isb '
      /tmp/cce439dZ.s:512: Error: selected processor does not support ARM mode `isb '
      /tmp/cce439dZ.s:513: Error: selected processor does not support ARM mode `dsb '
      /tmp/cce439dZ.s:583: Error: selected processor does not support ARM mode `isb '
      /tmp/cce439dZ.s:589: Error: selected processor does not support ARM mode `isb '
      /tmp/cce439dZ.s:590: Error: selected processor does not support ARM mode `dsb '
      Tested-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Tested-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      3c78d113
    • O
      Merge branch 'versatile/fixes' into fixes · 23c43df8
      Olof Johansson 提交于
      From Peter Maydell:
      These patches fix a number of issues with the PCI controller
      code for mach-versatile:
      
      (1) The irq mapping matched neither hardware nor QEMU; we correct
      it to match the hardware, which means it will also work on recent
      (1.5 or later) QEMU.
      
      (2) The code was confused between the PCI I/O window (at 0x43000000)
      and the first PCI memory window (at 0x44000000), which meant that
      PCI devices using PCI PIO rather than MMIO didn't work. This is
      fixed (and some variables/labels are renamed to avoid further
      confusion in future).
      
      (3) The SMAP register offsets were all off-by-four, though by
      fluke this didn't actually have any ill effects.
      
      All these changes have been tested on real hardware (PB926
      plus the PCI backplane), as well as on QEMU. I have confirmed
      that IRQs and PCI PIO and MMIO work OK.
      
      PCI bus-master DMA doesn't seem to work on h/w -- as far as I can
      tell the device is correctly managing to DMA to the right places
      in memory, but every other 32 bit word is corrupt (at least judging
      from rtl8139 debug dumps of the frames it's receiving). I'm not
      sure what's going on here, but since this is disjoint from
      the irq and I/O issues I don't think that applying the
      patches that fix those should be stalled on trying to debug
      DMA problems. (DMA works fine on QEMU, incidentally.)
      
      * versatile/fixes:
        ARM: PCI: versatile: Fix SMAP register offsets
        ARM: PCI: versatile: Fix PCI I/O
        ARM: PCI: versatile: Fix map_irq function to match hardware
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      23c43df8
    • S
      ARM: shmobile: lager: Do not use register_type field of struct sh_eth_plat_data · 3a116a5e
      Simon Horman 提交于
      As of 8d3214c4 ("sh_eth: remove 'register_type' field from 'struct
      sh_eth_plat_data'") is is no longer necessary or correct to use the
      'register_type' field from 'struct sh_eth_plat_data' and doing so results
      in a build error.
      Signed-off-by: NSimon Horman <horms+renesas@verge.net.au>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      3a116a5e
    • O
      Merge tag 'renesas-fixes3-for-v3.12' of... · afba951e
      Olof Johansson 提交于
      Merge tag 'renesas-fixes3-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes
      
      From Simon Horman:
      Third Round of Renesas ARM based SoC fixes for v3.12
      
      * Update early timer initialisation order of r8a7779 SoC
      
      This resolves a regression introduced by
      a894fcc2 ("ARM: smp_twd: Divorce smp_twd
      from local timer API").
      
      This problem was introduced in v3.10-rc2.
      
      * tag 'renesas-fixes3-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
        ARM: shmobile: r8a7779: Update early timer initialisation order
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      afba951e
    • O
      ARM: pxa: ssp: Check return values from phandle lookups · d5ece937
      Olof Johansson 提交于
      Commit a6e56c28 (ARM: pxa: ssp: add DT bindings) causes warnings
      when built:
      
      arch/arm/plat-pxa/ssp.c: In function 'pxa_ssp_probe':
      arch/arm/plat-pxa/ssp.c:145:17: warning: 'dma_spec.args[0]' may be used
      	uninitialized in this function [-Wmaybe-uninitialized]
      
      Resolve by checking return values and aborting when lookups fail.
      
      Cc: Daniel Mack <zonque@gmail.com>
      Cc: Mark Brown <broonie@linaro.org>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      d5ece937
    • L
      Merge tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 64041417
      Linus Torvalds 提交于
      Pull ARM SoC late changes from Kevin Hilman:
       "These are changes that arrived a little late before the merge window,
        or had dependencies on previous branches.
      
        Highlights:
         - ux500: misc.  cleanup, fixup I2C devices
         - exynos: DT updates for RTC; PM updates
         - at91: DT updates for NAND; new platforms added to generic defconfig
         - sunxi: DT updates: cubieboard2, pinctrl driver, gated clocks
         - highbank: LPAE fixes, select necessary ARM errata
         - omap: PM fixes and improvements; OMAP5 mailbox support
         - omap: basic support for new DRA7xx SoCs"
      
      * tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits)
        ARM: dts: vexpress: Add CCI node to TC2 device-tree
        ARM: EXYNOS: Skip C1 cpuidle state for exynos5440
        ARM: EXYNOS: always enable PM domains support for EXYNOS4X12
        ARM: highbank: clean-up some unused includes
        ARM: sun7i: Enable the A20 clocks in the DTSI
        ARM: sun6i: Enable clock support in the DTSI
        ARM: sun5i: dt: Use the A10s gates in the DTSI
        ARM: at91: at91_dt_defconfig: enable rm9200 support
        ARM: dts: add ADC device tree node for exynos5420/5250
        ARM: dts: Add RTC DT node to Exynos5420 SoC
        ARM: dts: Update the "status" property of RTC DT node for Exynos5250 SoC
        ARM: dts: Fix the RTC DT node name for Exynos5250
        irqchip: mmp: avoid to include irqs head file
        ARM: mmp: avoid to include head file in mach-mmp
        irqchip: mmp: support irqchip
        irqchip: move mmp irq driver
        ARM: OMAP: AM33xx: clock: Add RNG clock data
        ARM: OMAP: TI81XX: add always-on powerdomain for TI81XX
        ARM: OMAP4: clock: Lock PLLs in the right sequence
        ARM: OMAP: AM33XX: hwmod: Add hwmod data for debugSS
        ...
      64041417
    • L
      Merge tag 'renesas-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fa91515c
      Linus Torvalds 提交于
      Pull ARM Renesas SoC cleanup, refactoring and more SMP support from Kevin Hilman:
       "Lots of cleanup and refactoring and some SMP additions for Renesas
        platforms.  Due to some inter-dependencies with other arm-soc
        branches, this Renesas stuff was separated out for sending after the
        other branches were merged.
      
        Highlights:
         - remove unused board support and cleanup of unused headers
         - refactoring of init and device registration
         - simplify IRQ initialization"
      
      * tag 'renesas-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (68 commits)
        ARM: shmobile: Per-CPU SMP boot / sleep code for SCU SoCs
        ARM: shmobile: Introduce per-CPU SMP boot / sleep code
        ARM: shmobile: Use shared SCU CPU Hotplug code on r8a7779
        ARM: shmobile: Use shared SCU CPU Hotplug code on sh73a0
        ARM: shmobile: Add shared SCU CPU Hotplug code
        ARM: shmobile: Use shared SCU SMP boot code on emev2
        ARM: shmobile: Use shared SCU SMP boot code on r8a7779
        ARM: shmobile: Use shared SCU SMP boot code on sh73a0
        ARM: shmobile: Introduce shared SCU SMP boot code
        ARM: shmobile: sh73a0: Remove global GPIO_NR definition
        ARM: shmobile: kzm9d: remove nfsroot settings from bootargs
        ARM: shmobile: armadillo800eva: remove nfsroot settings from bootargs
        ARM: shmobile: r8a7779: move r8a7779_init_irq_xxx() to setup
        ARM: shmobile: r8a7740: move r8a7740_init_irq_of() to setup
        ARM: shmobile: bockw: add missing __initdata
        ARM: shmobile: r8a7790: add missing __initdata
        ARM: shmobile: r8a7779: add missing __initdata
        ARM: shmobile: Remove unused shmobile_init_time()
        ARM: shmobile: Use clocksource_of_init() on r8a7790
        ARM: shmobile: Use default ->init_time() on KZM9G DT ref
        ...
      fa91515c
    • L
      Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · a35c6322
      Linus Torvalds 提交于
      Pull ARM SoC driver update from Kevin Hilman:
       "This contains the ARM SoC related driver updates for v3.12.  The only
        thing this cycle are core PM updates and CPUidle support for ARM's TC2
        big.LITTLE development platform"
      
      * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        cpuidle: big.LITTLE: vexpress-TC2 CPU idle driver
        ARM: vexpress: tc2: disable GIC CPU IF in tc2_pm_suspend
        drivers: irq-chip: irq-gic: introduce gic_cpu_if_down()
      a35c6322
    • L
      Merge tag 'clk-for-linus-3.12' of git://git.linaro.org/people/mturquette/linux · bef4a0ab
      Linus Torvalds 提交于
      Pull clock framework changes from Michael Turquette:
       "The common clk framework changes for 3.12 are dominated by clock
        driver patches, both new drivers and fixes to existing.  A high
        percentage of these are for Samsung platforms like Exynos.  Core
        framework fixes and some new features like automagical clock
        re-parenting round out the patches"
      
      * tag 'clk-for-linus-3.12' of git://git.linaro.org/people/mturquette/linux: (102 commits)
        clk: only call get_parent if there is one
        clk: samsung: exynos5250: Simplify registration of PLL rate tables
        clk: samsung: exynos4: Register PLL rate tables for Exynos4x12
        clk: samsung: exynos4: Register PLL rate tables for Exynos4210
        clk: samsung: exynos4: Reorder registration of mout_vpllsrc
        clk: samsung: pll: Add support for rate configuration of PLL46xx
        clk: samsung: pll: Use new registration method for PLL46xx
        clk: samsung: pll: Add support for rate configuration of PLL45xx
        clk: samsung: pll: Use new registration method for PLL45xx
        clk: samsung: exynos4: Rename exynos4_plls to exynos4x12_plls
        clk: samsung: exynos4: Remove checks for DT node
        clk: samsung: exynos4: Remove unused static clkdev aliases
        clk: samsung: Modify _get_rate() helper to use __clk_lookup()
        clk: samsung: exynos4: Use separate aliases for cpufreq related clocks
        clocksource: samsung_pwm_timer: Get clock from device tree
        ARM: dts: exynos4: Specify PWM clocks in PWM node
        pwm: samsung: Update DT bindings documentation to cover clocks
        clk: Move symbol export to proper location
        clk: fix new_parent dereference before null check
        clk: wm831x: Initialise wm831x pointer on init
        ...
      bef4a0ab
    • L
      Merge tag 'trace-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 7eb69529
      Linus Torvalds 提交于
      Pull tracing updates from Steven Rostedt:
       "Not much changes for the 3.12 merge window.  The major tracing changes
        are still in flux, and will have to wait for 3.13.
      
        The changes for 3.12 are mostly clean ups and minor fixes.
      
        H Peter Anvin added a check to x86_32 static function tracing that
        helps a small segment of the kernel community.
      
        Oleg Nesterov had a few changes from 3.11, but were mostly clean ups
        and not worth pushing in the -rc time frame.
      
        Li Zefan had small clean up with annotating a raw_init with __init.
      
        I fixed a slight race in updating function callbacks, but the race is
        so small and the bug that happens when it occurs is so minor it's not
        even worth pushing to stable.
      
        The only real enhancement is from Alexander Z Lam that made the
        tracing_cpumask work for trace buffer instances, instead of them all
        sharing a global cpumask"
      
      * tag 'trace-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace/rcu: Do not trace debug_lockdep_rcu_enabled()
        x86-32, ftrace: Fix static ftrace when early microcode is enabled
        ftrace: Fix a slight race in modifying what function callback gets traced
        tracing: Make tracing_cpumask available for all instances
        tracing: Kill the !CONFIG_MODULES code in trace_events.c
        tracing: Don't pass file_operations array to event_create_dir()
        tracing: Kill trace_create_file_ops() and friends
        tracing/syscalls: Annotate raw_init function with __init
      7eb69529
    • A
      clk: only call get_parent if there is one · 12d29886
      Alex Elder 提交于
      In __clk_init(), after a clock is mostly initialized, a scan is done
      of the orphan clocks to see if the clock being registered is the
      parent of any of them.
      
      This code assumes that any clock that provides a get_parent method
      actually has at least one parent, and that's not a valid assumption.
      
      As a result, an orphan clock with no parent can return *something*
      as the parent index, and that value is blindly used to dereference
      the orphan's parent_names[] array (which will be ZERO_SIZE_PTR or
      NULL).
      
      Fix this by ensuring get_parent is only called for orphans with at
      least one parent.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      12d29886
    • L
      Merge tag 'xfs-for-linus-v3.12-rc1' of git://oss.sgi.com/xfs/xfs · 300893b0
      Linus Torvalds 提交于
      Pull xfs updates from Ben Myers:
       "For 3.12-rc1 there are a number of bugfixes in addition to work to
        ease usage of shared code between libxfs and the kernel, the rest of
        the work to enable project and group quotas to be used simultaneously,
        performance optimisations in the log and the CIL, directory entry file
        type support, fixes for log space reservations, some spelling/grammar
        cleanups, and the addition of user namespace support.
      
         - introduce readahead to log recovery
         - add directory entry file type support
         - fix a number of spelling errors in comments
         - introduce new Q_XGETQSTATV quotactl for project quotas
         - add USER_NS support
         - log space reservation rework
         - CIL optimisations
        - kernel/userspace libxfs rework"
      
      * tag 'xfs-for-linus-v3.12-rc1' of git://oss.sgi.com/xfs/xfs: (112 commits)
        xfs: XFS_MOUNT_QUOTA_ALL needed by userspace
        xfs: dtype changed xfs_dir2_sfe_put_ino to xfs_dir3_sfe_put_ino
        Fix wrong flag ASSERT in xfs_attr_shortform_getvalue
        xfs: finish removing IOP_* macros.
        xfs: inode log reservations are too small
        xfs: check correct status variable for xfs_inobt_get_rec() call
        xfs: inode buffers may not be valid during recovery readahead
        xfs: check LSN ordering for v5 superblocks during recovery
        xfs: btree block LSN escaping to disk uninitialised
        XFS: Assertion failed: first <= last && last < BBTOB(bp->b_length), file: fs/xfs/xfs_trans_buf.c, line: 568
        xfs: fix bad dquot buffer size in log recovery readahead
        xfs: don't account buffer cancellation during log recovery readahead
        xfs: check for underflow in xfs_iformat_fork()
        xfs: xfs_dir3_sfe_put_ino can be static
        xfs: introduce object readahead to log recovery
        xfs: Simplify xfs_ail_min() with list_first_entry_or_null()
        xfs: Register hotcpu notifier after initialization
        xfs: add xfs sb v4 support for dirent filetype field
        xfs: Add write support for dirent filetype field
        xfs: Add read-only support for dirent filetype field
        ...
      300893b0
    • O
      direct-io: Use return from cmpxchg to decide of assignment happened · 45150c43
      Olof Johansson 提交于
      Not using the return value can in the generic case be racy, so it's
      in general good practice to check the return value instead.
      
      This also resolved the warning caused on ARM and other architectures:
      
        fs/direct-io.c: In function 'sb_init_dio_done_wq':
        fs/direct-io.c:557:2: warning: value computed is not used [-Wunused-value]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: H Peter Anvin <hpa@zytor.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      45150c43
    • L
      Merge tag 'for-linus-20130909' of git://git.infradead.org/linux-mtd · ef9a61be
      Linus Torvalds 提交于
      Pull mtd updates from David Woodhouse:
       - factor out common code from MTD tests
       - nand-gpio cleanup and portability to non-ARM
       - m25p80 support for 4-byte addressing chips, other new chips
       - pxa3xx cleanup and support for new platforms
       - remove obsolete alauda, octagon-5066 drivers
       - erase/write support for bcm47xxsflash
       - improve detection of ECC requirements for NAND, controller setup
       - NFC acceleration support for atmel-nand, read/write via SRAM
       - etc
      
      * tag 'for-linus-20130909' of git://git.infradead.org/linux-mtd: (184 commits)
        mtd: chips: Add support for PMC SPI Flash chips in m25p80.c
        mtd: ofpart: use for_each_child_of_node() macro
        mtd: mtdswap: replace strict_strtoul() with kstrtoul()
        mtd cs553x_nand: use kzalloc() instead of memset
        mtd: atmel_nand: fix error return code in atmel_nand_probe()
        mtd: bcm47xxsflash: writing support
        mtd: bcm47xxsflash: implement erasing support
        mtd: bcm47xxsflash: convert to module_platform_driver instead of init/exit
        mtd: bcm47xxsflash: convert kzalloc to avoid invalid access
        mtd: remove alauda driver
        mtd: nand: mxc_nand: mark 'const' properly
        mtd: maps: cfi_flagadm: add missing __iomem annotation
        mtd: spear_smi: add missing __iomem annotation
        mtd: r852: Staticize local symbols
        mtd: nandsim: Staticize local symbols
        mtd: impa7: add missing __iomem annotation
        mtd: sm_ftl: Staticize local symbols
        mtd: m25p80: add support for mr25h10
        mtd: m25p80: make CONFIG_M25PXX_USE_FAST_READ safe to enable
        mtd: m25p80: Pass flags through CAT25_INFO macro
        ...
      ef9a61be
    • L
      Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · b5f0998c
      Linus Torvalds 提交于
      Pull firewire updates from Stefan Richter:
      
       - Fix a regression since 3.2 inclusive: The subsystem workqueue
         deadlocked between transaction completion handling and bus reset
         handling if the worker pool could not be increased in time.
      
       - janitorial updates
      
      * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: ohci: Fix deadlock at bus reset
        firewire: ohci: Change module_pci_driver to module_init/module_exit
        firewire: ohci: beautify some macro definitions
        firewire: ohci: change confusing name of a struct member
        firewire: core: typecast from gfp_t to bool more safely
        firewire: WQ_NON_REENTRANT is meaningless and going away
      b5f0998c
    • L
      Merge branch 'for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 64c35386
      Linus Torvalds 提交于
      Pull DMA mapping update from Marek Szyprowski:
       "This contains an addition of Device Tree support for reserved memory
        regions (Contiguous Memory Allocator is one of the drivers for it) and
        changes required by the KVM extensions for PowerPC architectue"
      
      * 'for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
        ARM: init: add support for reserved memory defined by device tree
        drivers: of: add initialization code for dma reserved memory
        drivers: of: add function to scan fdt nodes given by path
        drivers: dma-contiguous: clean source code and prepare for device tree
      64c35386
    • L
      Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · d8cacd3a
      Linus Torvalds 提交于
      Pull virtio update from Rusty Russell:
       "More console fixes; these are the theoretical ones which didn't get
        CC:stable.  But for that reason, I did a merge with master partway
        through to avoid an unnecessary conflict.
      
        Also: a fun lguest bug turns out if you don't clear the TF flag when
        trapping Bad Things happen to the guest kernel as the stack
        overflows..."
      
      * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        virtio_pci: pm: Use CONFIG_PM_SLEEP instead of CONFIG_PM
        lguest: fix GPF in guest when using gdb.
        lguest: fix guest kernel stack overflow when TF bit set.
        lguest: fix BUG_ON() in invalid guest page table.
        virtio: console: prevent use-after-free of port name in port unplug
        virtio: console: cleanup an error message
        virtio: console: fix locking around send_sigio_to_port()
        virtio: console: add locking in port unplug path
        virtio: console: add locks around buffer removal in port unplug path
        tools/lguest: offer VIRTIO_F_ANY_LAYOUT for net device.
        virtio tools: add .gitignore
        lguest: Point to the right directory for the lguest launcher
      d8cacd3a
    • L
      Merge tag 'vfio-v3.12-rc0' of git://github.com/awilliam/linux-vfio · d75671e3
      Linus Torvalds 提交于
      Pull VFIO update from Alex Williamson:
       "VFIO updates include safer default file flags for VFIO device fds, an
        external user interface exported to allow other modules to hold
        references to VFIO groups, a fix to test for extended config space on
        PCIe and PCI-x, and new hot reset interfaces for PCI devices which
        allows the user to do PCI bus/slot resets when all of the devices
        affected by the reset are owned by the user.
      
        For this last feature, the PCI bus reset interface, I depend on
        changes already merged from Bjorn's PCI pull request.  I therefore
        merged my tree up to commit cb3e4330, which I think was the correct
        action, but as Stephen Rothwell noted, I failed to provide a commit
        message indicating why the merge was required.  Sorry for that.
        Thanks, Alex"
      
      * tag 'vfio-v3.12-rc0' of git://github.com/awilliam/linux-vfio:
        vfio: fix documentation
        vfio-pci: PCI hot reset interface
        vfio-pci: Test for extended config space
        vfio-pci: Use fdget() rather than eventfd_fget()
        vfio: Add O_CLOEXEC flag to vfio device fd
        vfio: use get_unused_fd_flags(0) instead of get_unused_fd()
        vfio: add external user support
      d75671e3
    • L
      Merge tag 'nfs-for-3.12-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · bf97293e
      Linus Torvalds 提交于
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
         - Fix NFSv4 recovery so that it doesn't recover lost locks in cases
           such as lease loss due to a network partition, where doing so may
           result in data corruption.  Add a kernel parameter to control
           choice of legacy behaviour or not.
         - Performance improvements when 2 processes are writing to the same
           file.
         - Flush data to disk when an RPCSEC_GSS session timeout is imminent.
         - Implement NFSv4.1 SP4_MACH_CRED state protection to prevent other
           NFS clients from being able to manipulate our lease and file
           locking state.
         - Allow sharing of RPCSEC_GSS caches between different rpc clients.
         - Fix the broken NFSv4 security auto-negotiation between client and
           server.
         - Fix rmdir() to wait for outstanding sillyrename unlinks to complete
         - Add a tracepoint framework for debugging NFSv4 state recovery
           issues.
         - Add tracing to the generic NFS layer.
         - Add tracing for the SUNRPC socket connection state.
         - Clean up the rpc_pipefs mount/umount event management.
         - Merge more patches from Chuck in preparation for NFSv4 migration
           support"
      
      * tag 'nfs-for-3.12-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (107 commits)
        NFSv4: use mach cred for SECINFO_NO_NAME w/ integrity
        NFS: nfs_compare_super shouldn't check the auth flavour unless 'sec=' was set
        NFSv4: Allow security autonegotiation for submounts
        NFSv4: Disallow security negotiation for lookups when 'sec=' is specified
        NFSv4: Fix security auto-negotiation
        NFS: Clean up nfs_parse_security_flavors()
        NFS: Clean up the auth flavour array mess
        NFSv4.1 Use MDS auth flavor for data server connection
        NFS: Don't check lock owner compatability unless file is locked (part 2)
        NFS: Don't check lock owner compatibility in writes unless file is locked
        nfs4: Map NFS4ERR_WRONG_CRED to EPERM
        nfs4.1: Add SP4_MACH_CRED write and commit support
        nfs4.1: Add SP4_MACH_CRED stateid support
        nfs4.1: Add SP4_MACH_CRED secinfo support
        nfs4.1: Add SP4_MACH_CRED cleanup support
        nfs4.1: Add state protection handler
        nfs4.1: Minimal SP4_MACH_CRED implementation
        SUNRPC: Replace pointer values with task->tk_pid and rpc_clnt->cl_clid
        SUNRPC: Add an identifier for struct rpc_clnt
        SUNRPC: Ensure rpc_task->tk_pid is available for tracepoints
        ...
      bf97293e
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 16d70e15
      Linus Torvalds 提交于
      Pull fuse bugfixes from Miklos Szeredi:
       "Just a bunch of bugfixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: use list_for_each_entry() for list traversing
        fuse: readdir: check for slash in names
        fuse: hotfix truncate_pagecache() issue
        fuse: invalidate inode attributes on xattr modification
        fuse: postpone end_page_writeback() in fuse_writepage_locked()
      16d70e15
    • L
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 6c337ad6
      Linus Torvalds 提交于
      Pull GFS2 updates from Steven Whitehouse:
       "This is possibly the smallest ever set of GFS2 patches for a merge
        window.  Also, most of them are bug fixes this time.
      
        Two of my three patches (moving gfs2_sync_meta and merging the two
        writepage implementations) are clean ups with the third (taking the
        glock ref in examine_bucket) being a fix for a difficult to hit race
        condition.
      
        The removal of an unused memory barrier is a clean up from Bob
        Peterson, and the "spectator" relates to a rarely used mount option.
        Ben Marzinski's patch fixes a corner case where the incorrect inode
        flags were being set, resulting in incorrect behaviour on fsync"
      
      * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:
        GFS2: dirty inode correctly in gfs2_write_end
        GFS2: Don't flag consistency error if first mounter is a spectator
        GFS2: Remove unnecessary memory barrier
        GFS2: Merge ordered and writeback writepage
        GFS2: Take glock reference in examine_bucket()
        GFS2: Move gfs2_sync_meta to lops.c
      6c337ad6
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 6cccc7d3
      Linus Torvalds 提交于
      Pull ceph updates from Sage Weil:
       "This includes both the first pile of Ceph patches (which I sent to
        torvalds@vger, sigh) and a few new patches that add support for
        fscache for Ceph.  That includes a few fscache core fixes that David
        Howells asked go through the Ceph tree.  (Thanks go to Milosz Tanski
        for putting this feature together)
      
        This first batch of patches (included here) had (has) several
        important RBD bug fixes, hole punch support, several different
        cleanups in the page cache interactions, improvements in the truncate
        code (new truncate mutex to avoid shenanigans with i_mutex), and a
        series of fixes in the synchronous striping read/write code.
      
        On top of that is a random collection of small fixes all across the
        tree (error code checks and error path cleanup, obsolete wq flags,
        etc)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (43 commits)
        ceph: use d_invalidate() to invalidate aliases
        ceph: remove ceph_lookup_inode()
        ceph: trivial buildbot warnings fix
        ceph: Do not do invalidate if the filesystem is mounted nofsc
        ceph: page still marked private_2
        ceph: ceph_readpage_to_fscache didn't check if marked
        ceph: clean PgPrivate2 on returning from readpages
        ceph: use fscache as a local presisent cache
        fscache: Netfs function for cleanup post readpages
        FS-Cache: Fix heading in documentation
        CacheFiles: Implement interface to check cache consistency
        FS-Cache: Add interface to check consistency of a cached object
        rbd: fix null dereference in dout
        rbd: fix buffer size for writes to images with snapshots
        libceph: use pg_num_mask instead of pgp_num_mask for pg.seed calc
        rbd: fix I/O error propagation for reads
        ceph: use vfs __set_page_dirty_nobuffers interface instead of doing it inside filesystem
        ceph: allow sync_read/write return partial successed size of read/write.
        ceph: fix bugs about handling short-read for sync read mode.
        ceph: remove useless variable revoked_rdcache
        ...
      6cccc7d3
    • L
      Merge tag 'metag-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 255ae3fb
      Linus Torvalds 提交于
      Pull metag architecture changes from James Hogan:
       - Device tree updates for TZ1090 GPIO drivers merged via GPIO tree.
       - Add driver for ImgTec PDC irqchip as found in TZ1090 SoC.
       - Add linux-metag mailing list to MAINTAINERS file.
      
      * tag 'metag-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
        irq-imgpdc: add ImgTec PDC irqchip driver
        MAINTAINERS: add linux-metag mailing list
        metag: tz1090: instantiate gpio-tz1090-pdc
        metag: tz1090: select and instantiate gpio-tz1090
        metag: tz1090: select and instantiate irq-imgpdc
      255ae3fb
    • L
      Merge tag 'arc-v3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 89c5a946
      Linus Torvalds 提交于
      Pull ARC changes from Vineet Gupta:
      
       - ARC MM changes:
          - preparation for MMUv4 (accomodate new PTE bits, new cmds)
          - Rework the ASID allocation algorithm to remove asid-mm reverse map
       - Boilerplate code consolidation in Exception Handlers
       - Disable FRAME_POINTER for ARC
       - Unaligned Access Emulation for Big-Endian from Noam
       - Bunch of fixes (udelay, missing accessors) from Mischa
      
      * tag 'arc-v3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: fix new Section mismatches in build (post __cpuinit cleanup)
        Kconfig.debug: Add FRAME_POINTER anti-dependency for ARC
        ARC: Fix __udelay calculation
        ARC: remove console_verbose() from setup_arch()
        ARC: Add read*_relaxed to asm/io.h
        ARC: Handle un-aligned user space access in BE.
        ARC: [ASID] Track ASID allocation cycles/generations
        ARC: [ASID] activate_mm() == switch_mm()
        ARC: [ASID] get_new_mmu_context() to conditionally allocate new ASID
        ARC: [ASID] Refactor the TLB paranoid debug code
        ARC: [ASID] Remove legacy/unused debug code
        ARC: No need to flush the TLB in early boot
        ARC: MMUv4 preps/3 - Abstract out TLB Insert/Delete
        ARC: MMUv4 preps/2 - Reshuffle PTE bits
        ARC: MMUv4 preps/1 - Fold PTE K/U access flags
        ARC: Code cosmetics (Nothing semantical)
        ARC: Entry Handler tweaks: Optimize away redundant IRQ_DISABLE_SAVE
        ARC: Exception Handlers Code consolidation
        ARC: Add some .gitignore entries
      89c5a946
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 833ae40b
      Linus Torvalds 提交于
      Pull m68knommu fixes from Greg Ungerer:
       "Just a small collection of cleanups and fixes this time, no big
        changes.  The most interresting are to make the m68k and m68knommu
        consistently use CONFIG_IOMAP, clean out some unused board config
        options and flush the cache on signal stack creation"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: remove 16 unused boards in Kconfig.machine
        m68k: define 'VM_DATA_DEFAULT_FLAGS' no matter whether has 'NOMMU' or not
        m68knommu: user generic iomap to support ioread*/iowrite*
        m68k/coldfire: flush cache when creating the signal stack frame
        m68knommu: Mark functions only called from setup_arch() __init
      833ae40b
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 20e029d7
      Linus Torvalds 提交于
      Pull UML updates from Richard Weinberger:
       "This pile contains mostly fixes and improvements for issues identified
        by Richard W M Jones while adding UML as backend to libguestfs"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Add irq chip um/mask handlers
        um: prctl: Do not include linux/ptrace.h
        um: Run UML in it's own session.
        um: Cleanup SIGTERM handling
        um: ubd: Introduce submit_request()
        um: ubd: Add REQ_FLUSH suppport
        um: Implement probe_kernel_read()
        um: hostfs: Fix writeback
      20e029d7
  4. 09 9月, 2013 4 次提交
    • L
      vfs: fix dentry RCU to refcounting possibly sleeping dput() · e5c832d5
      Linus Torvalds 提交于
      This is the fix that the last two commits indirectly led up to - making
      sure that we don't call dput() in a bad context on the dentries we've
      looked up in RCU mode after the sequence count validation fails.
      
      This basically expands d_rcu_to_refcount() into the callers, and then
      fixes the callers to delay the dput() in the failure case until _after_
      we've dropped all locks and are no longer in an RCU-locked region.
      
      The case of 'complete_walk()' was trivial, since its failure case did
      the unlock_rcu_walk() directly after the call to d_rcu_to_refcount(),
      and as such that is just a pure expansion of the function with a trivial
      movement of the resulting dput() to after 'unlock_rcu_walk()'.
      
      In contrast, the unlazy_walk() case was much more complicated, because
      not only does convert two different dentries from RCU to be reference
      counted, but it used to not call unlock_rcu_walk() at all, and instead
      just returned an error and let the caller clean everything up in
      "terminate_walk()".
      
      Happily, one of the dentries in question (called "parent" inside
      unlazy_walk()) is the dentry of "nd->path", which terminate_walk() wants
      a refcount to anyway for the non-RCU case.
      
      So what the new and improved unlazy_walk() does is to first turn that
      dentry into a refcounted one, and once that is set up, the error cases
      can continue to use the terminate_walk() helper for cleanup, but for the
      non-RCU case.  Which makes it possible to drop out of RCU mode if we
      actually hit the sequence number failure case.
      Acked-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e5c832d5
    • A
      virtio_pci: pm: Use CONFIG_PM_SLEEP instead of CONFIG_PM · 9e266ece
      Aaron Lu 提交于
      The virtio_pci_freeze/restore are defined under CONFIG_PM but is used
      by SET_SYSTEM_SLEEP_PM_OPS macro, which is defined under
      CONFIG_PM_SLEEP. So if CONFIG_PM_SLEEP is not cofigured but
      CONFIG_PM_RUNTIME is, the following warning message appeared:
      
      drivers/virtio/virtio_pci.c:770:12: warning: ‘virtio_pci_freeze’ defined but not used [-Wunused-function]
       static int virtio_pci_freeze(struct device *dev)
                  ^
      drivers/virtio/virtio_pci.c:790:12: warning: ‘virtio_pci_restore’ defined but not used [-Wunused-function]
       static int virtio_pci_restore(struct device *dev)
                  ^
      Fix it by changing CONFIG_PM to CONFIG_PM_SLEEP.
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Reviewed-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      9e266ece
    • L
      vfs: use lockred "dead" flag to mark unrecoverably dead dentries · 0d98439e
      Linus Torvalds 提交于
      This simplifies the RCU to refcounting code in particular.
      
      I was originally intending to leave this for later, but walking through
      all the dput() logic (see previous commit), I realized that the dput()
      "might_sleep()" check was misleadingly weak.  And I removed it as
      misleading, both for performance profiling and for debugging.
      
      However, the might_sleep() debugging case is actually true: the final
      dput() can indeed sleep, if the inode of the dentry that you are
      releasing ends up sleeping at iput time (see dentry_iput()).  So the
      problem with the might_sleep() in dput() wasn't that it wasn't true, it
      was that it wasn't actually testing and triggering on the interesting
      case.
      
      In particular, just about *any* dput() can indeed sleep, if you happen
      to race with another thread deleting the file in question, and you then
      lose the race to the be the last dput() for that file.  But because it's
      a very rare race, the debugging code would never trigger it in practice.
      
      Why is this problematic? The new d_rcu_to_refcount() (see commit
      15570086: "vfs: reimplement d_rcu_to_refcount() using
      lockref_get_or_lock()") does a dput() for the failure case, and it does
      it under the RCU lock.  So potentially sleeping really is a bug.
      
      But there's no way I'm going to fix this with the previous complicated
      "lockref_get_or_lock()" interface.  And rather than revert to the old
      and crufty nested dentry locking code (which did get this right by
      delaying the reference count updates until they were verified to be
      safe), let's make forward progress.
      
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0d98439e
    • L
      vfs: reorganize dput() memory accesses · 8aab6a27
      Linus Torvalds 提交于
      This is me being a bit OCD after all the dentry optimization work this
      merge window: profiles end up showing 'dput()' as a rather expensive
      operation, and there were two unrelated bad reasons for that.
      
      The first reason was reading d_lockref.count for debugging purposes,
      which touches the lockref cacheline (for reads) before really need to.
      More importantly, the debugging test in question is _wrong_, and has
      hidden bugs.  It's true that we can only sleep when the count goes down
      to zero, but the test as-is hides the much more subtle bug that happens
      if we race with somebody else deleting the file.
      
      Anyway we _will_ touch that cacheline, but let's do it for a write and
      in the right routine (ie in "lockref_put_or_lock()") which annotates the
      costs better.  So remove the misleading debug code.
      
      The other was an unnecessary access to the cacheline that contains the
      d_lru list, just to check whether we already were on the LRU list or
      not.  This is exactly what we have d_flags for, so that we can avoid
      touching extra cache lines for the common case.  So just add another bit
      for "is this dentry on the LRU".
      
      Finally, mark the tests properly likely/unlikely, so that the common
      fast-paths are dense in the instruction stream.
      
      This makes the profiles look much saner.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8aab6a27
  5. 08 9月, 2013 6 次提交
    • L
      Merge git://git.infradead.org/users/willy/linux-nvme · b409624a
      Linus Torvalds 提交于
      Pull NVM Express driver update from Matthew Wilcox.
      
      * git://git.infradead.org/users/willy/linux-nvme:
        NVMe: Merge issue on character device bring-up
        NVMe: Handle ioremap failure
        NVMe: Add pci suspend/resume driver callbacks
        NVMe: Use normal shutdown
        NVMe: Separate controller init from disk discovery
        NVMe: Separate queue alloc/free from create/delete
        NVMe: Group pci related actions in functions
        NVMe: Disk stats for read/write commands only
        NVMe: Bring up cdev on set feature failure
        NVMe: Fix checkpatch issues
        NVMe: Namespace IDs are unsigned
        NVMe: Update nvme_id_power_state with latest spec
        NVMe: Split header file into user-visible and kernel-visible pieces
        NVMe: Call nvme_process_cq from submission path
        NVMe: Remove "process_cq did something" message
        NVMe: Return correct value from interrupt handler
        NVMe: Disk IO statistics
        NVMe: Restructure MSI / MSI-X setup
        NVMe: Use kzalloc instead of kmalloc+memset
      b409624a
    • L
      Merge tag 'ntb-3.12' of git://github.com/jonmason/ntb · c4c17252
      Linus Torvalds 提交于
      Pull NTB (non-transparent bridge) updates from Jon Mason:
       "NTB driver bug fixes to address issues in NTB-RP enablement, spad,
        debugfs, and USD/DSD identification.
      
        Add a workaround on Xeon NTB devices for b2bdoorbell errata.  Also,
        add new NTB driver features to support 32bit x86, DMA engine support,
        and NTB-RP support.
      
        Finally, a few clean-ups and update to MAINTAINERS for the NTB git
        tree and wiki location"
      
      * tag 'ntb-3.12' of git://github.com/jonmason/ntb:
        ntb: clean up unnecessary MSI/MSI-X capability find
        MAINTAINERS: Add Website and Git Tree for NTB
        NTB: Update Version
        NTB: Comment Fix
        NTB: Remove unused variable
        NTB: Remove References of non-B2B BWD HW
        NTB: NTB-RP support
        NTB: Rename Variables for NTB-RP
        NTB: Use DMA Engine to Transmit and Receive
        NTB: Enable 32bit Support
        NTB: Update Device IDs
        NTB: BWD Link Recovery
        NTB: Xeon Errata Workaround
        NTB: Correct debugfs to work with more than 1 NTB Device
        NTB: Correct USD/DSD Identification
        NTB: Correct Number of Scratch Pad Registers
        NTB: Add Error Handling in ntb_device_setup
      c4c17252
    • L
      Merge tag 'mfd-3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next · 8de4651a
      Linus Torvalds 提交于
      Pull MFD (multi-function device) updates from Samuel Ortiz:
       "For the 3.12 merge window we have one new driver for the DA9063 PMIC
        from Dialog Semiconductor.
      
        Besides that driver we also have:
      
         - Device tree support for the s2mps11 driver
      
         - More devm_* conversion for the pm8921, max89xx, menelaus, tps65010,
           wl1273 and pcf50633-adc drivers.
      
         - A conversion to threaded IRQ and IRQ domain for the twl6030 driver.
      
         - A fairly big update for the rtsx driver: Better power saving
           support, better vendor settings handling, and a few fixes.
      
         - Support for a couple more boards (COMe-bHL6 and COMe-cTH6) for the
           Kontron driver.
      
         - A conversion to the dev_get_platdata() API for all MFD drivers.
      
         - A removal of non-DT (legacy) support for the twl6040 driver.
      
         - A few fixes and additions (Mic detect level) to the wm5110 register
           tables.
      
         - Regmap support for the davinci_voicecodec driver.
      
         - The usual bunch of minor cleanups and janitorial fixes"
      
      * tag 'mfd-3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next: (81 commits)
        mfd: ucb1x00-core: Rewrite ucb1x00_add_dev()
        mfd: ab8500-debugfs: Apply a check for -ENOMEM after allocating memory for event name
        mfd: ab8500-debugfs: Apply a check for -ENOMEM after allocating memory for sysfs
        mfd: timberdale: Use module_pci_driver
        mfd: timberdale: Remove redundant break
        mfd: timberdale: Staticize local variables
        mfd: ab8500-debugfs: Staticize local variables
        mfd: db8500-prcmu: Staticize clk_mgt
        mfd: db8500-prcmu: Use ANSI function declaration
        mfd: omap-usb-host: Staticize usbhs_driver_name
        mfd: 88pm805: Fix potential NULL pdata dereference
        mfd: 88pm800: Fix potential NULL pdata dereference
        mfd: twl6040: Use regmap for register cache
        mfd: davinci_voicecodec: Provide a regmap for register I/O
        mfd: davinci_voicecodec: Remove unused read and write functions
        mmc: memstick: rtsx: Modify copyright comments
        mmc: rtsx: Clear SD_CLK toggle enable bit if switching voltage fail
        mfd: mmc: rtsx: Change default tx phase
        mfd: pcf50633-adc: Use devm_*() functions
        mfd: rtsx: Copyright modifications
        ...
      8de4651a
    • L
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 327fff3e
      Linus Torvalds 提交于
      Pull misc kbuild updates from Michal Marek:
       "In the kbuild misc branch, I have:
         - make rpm-pkg updates, most importantly the rpm package now calls
           /sbin/installkernel
         - make deb-pkg: debuginfo split, correct kernel image path for
           parisc, mips and powerpc and a couple more minor fixes
         - New coccinelle check"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        scripts/checkkconfigsymbols.sh: replace echo -e with printf
        Provide version number for Debian firmware package
        coccinelle: replace 0/1 with false/true in functions returning bool
        deb-pkg: add a hook argument to match debian hooks parameters
        deb-pkg: fix installed image path on parisc, mips and powerpc
        deb-pkg: split debug symbols in their own package
        deb-pkg: use KCONFIG_CONFIG instead of .config file directly
        rpm-pkg: add generation of kernel-devel
        rpm-pkg: install firmware files in kernel relative directory
        rpm-pkg: add %post section to create initramfs and grub hooks
      327fff3e
    • L
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 1ff5e37e
      Linus Torvalds 提交于
      Pull kbuild update from Michal Marek:
       "Only these two commits are in the kbuild branch this time:
         - Using filechk for include/config/kernel.release
         - Cleanup in scripts/sortextable.c"
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kbuild: Do not overwrite include/config/kernel.release needlessly
        scripts: remove unused function in sortextable.c
      1ff5e37e
    • L
      lockref: add ability to mark lockrefs "dead" · e7d33bb5
      Linus Torvalds 提交于
      The only actual current lockref user (dcache) uses zero reference counts
      even for perfectly live dentries, because it's a cache: there may not be
      any users, but that doesn't mean that we want to throw away the dentry.
      
      At the same time, the dentry cache does have a notion of a truly "dead"
      dentry that we must not even increment the reference count of, because
      we have pruned it and it is not valid.
      
      Currently that distinction is not visible in the lockref itself, and the
      dentry cache validation uses "lockref_get_or_lock()" to either get a new
      reference to a dentry that already had existing references (and thus
      cannot be dead), or get the dentry lock so that we can then verify the
      dentry and increment the reference count under the lock if that
      verification was successful.
      
      That's all somewhat complicated.
      
      This adds the concept of being "dead" to the lockref itself, by simply
      using a count that is negative.  This allows a usage scenario where we
      can increment the refcount of a dentry without having to validate it,
      and pushing the special "we killed it" case into the lockref code.
      
      The dentry code itself doesn't actually use this yet, and it's probably
      too late in the merge window to do that code (the dentry_kill() code
      with its "should I decrement the count" logic really is pretty complex
      code), but let's introduce the concept at the lockref level now.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e7d33bb5