1. 09 Sep, 2013 9 commits
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.12-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · bf97293e
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 16d70e15
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 6c337ad6
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 6cccc7d3
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'metag-for-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 255ae3fb
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'arc-v3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 89c5a946
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 833ae40b
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 20e029d7
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      vfs: fix dentry RCU to refcounting possibly sleeping dput() · e5c832d5
      Linus Torvalds authored
      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: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e5c832d5
  2. 08 Sep, 2013 7 commits
    • Linus Torvalds's avatar
      vfs: use lockred "dead" flag to mark unrecoverably dead dentries · 0d98439e
      Linus Torvalds authored
      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: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0d98439e
    • Linus Torvalds's avatar
      vfs: reorganize dput() memory accesses · 8aab6a27
      Linus Torvalds authored
      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: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8aab6a27
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/willy/linux-nvme · b409624a
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'ntb-3.12' of git://github.com/jonmason/ntb · c4c17252
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'mfd-3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next · 8de4651a
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 327fff3e
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 1ff5e37e
      Linus Torvalds authored
      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
  3. 07 Sep, 2013 24 commits
    • Linus Torvalds's avatar
      lockref: add ability to mark lockrefs "dead" · e7d33bb5
      Linus Torvalds authored
      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: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e7d33bb5
    • Weston Andros Adamson's avatar
      NFSv4: use mach cred for SECINFO_NO_NAME w/ integrity · b1b3e136
      Weston Andros Adamson authored
      Commit 97431204 introduced a regression
      that causes SECINFO_NO_NAME to fail without sending an RPC if:
      
       1) the nfs_client's rpc_client is using krb5i/p (now tried by default)
       2) the current user doesn't have valid kerberos credentials
      
      This situation is quite common - as of now a sec=sys mount would use
      krb5i for the nfs_client's rpc_client and a user would hardly be faulted
      for not having run kinit.
      
      The solution is to use the machine cred when trying to use an integrity
      protected auth flavor for SECINFO_NO_NAME.
      
      Older servers may not support using the machine cred or an integrity
      protected auth flavor for SECINFO_NO_NAME in every circumstance, so we fall
      back to using the user's cred and the filesystem's auth flavor in this case.
      
      We run into another problem when running against linux nfs servers -
      they return NFS4ERR_WRONGSEC when using integrity auth flavor (unless the
      mount is also that flavor) even though that is not a valid error for
      SECINFO*.  Even though it's against spec, handle WRONGSEC errors on
      SECINFO_NO_NAME by falling back to using the user cred and the
      filesystem's auth flavor.
      Signed-off-by: default avatarWeston Andros Adamson <dros@netapp.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      b1b3e136
    • Trond Myklebust's avatar
      NFS: nfs_compare_super shouldn't check the auth flavour unless 'sec=' was set · 0aea92bf
      Trond Myklebust authored
      Also don't worry about obsolete mount flags...
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      0aea92bf
    • Linus Torvalds's avatar
      lockref: fix docbook argument names · 44a0cf92
      Linus Torvalds authored
      The code got rewritten, but the comments got copied as-is from older
      versions, and as a result the argument name in the comment didn't
      actually match the code any more.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      44a0cf92
    • Trond Myklebust's avatar
      NFSv4: Allow security autonegotiation for submounts · 47040da3
      Trond Myklebust authored
      In cases where the parent super block was not mounted with a 'sec=' line,
      allow autonegotiation of security for the submounts.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      47040da3
    • Trond Myklebust's avatar
      NFSv4: Disallow security negotiation for lookups when 'sec=' is specified · 41d058c3
      Trond Myklebust authored
      Ensure that nfs4_proc_lookup_common respects the NFS_MOUNT_SECFLAVOUR
      flag.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      41d058c3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · dc0755cd
      Linus Torvalds authored
      Pull vfs pile 2 (of many) from Al Viro:
       "Mostly Miklos' series this time"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        constify dcache.c inlined helpers where possible
        fuse: drop dentry on failed revalidate
        fuse: clean up return in fuse_dentry_revalidate()
        fuse: use d_materialise_unique()
        sysfs: use check_submounts_and_drop()
        nfs: use check_submounts_and_drop()
        gfs2: use check_submounts_and_drop()
        afs: use check_submounts_and_drop()
        vfs: check unlinked ancestors before mount
        vfs: check submounts and drop atomically
        vfs: add d_walk()
        vfs: restructure d_genocide()
      dc0755cd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · c7c4591d
      Linus Torvalds authored
      Pull namespace changes from Eric Biederman:
       "This is an assorted mishmash of small cleanups, enhancements and bug
        fixes.
      
        The major theme is user namespace mount restrictions.  nsown_capable
        is killed as it encourages not thinking about details that need to be
        considered.  A very hard to hit pid namespace exiting bug was finally
        tracked and fixed.  A couple of cleanups to the basic namespace
        infrastructure.
      
        Finally there is an enhancement that makes per user namespace
        capabilities usable as capabilities, and an enhancement that allows
        the per userns root to nice other processes in the user namespace"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        userns:  Kill nsown_capable it makes the wrong thing easy
        capabilities: allow nice if we are privileged
        pidns: Don't have unshare(CLONE_NEWPID) imply CLONE_THREAD
        userns: Allow PR_CAPBSET_DROP in a user namespace.
        namespaces: Simplify copy_namespaces so it is clear what is going on.
        pidns: Fix hang in zap_pid_ns_processes by sending a potentially extra wakeup
        sysfs: Restrict mounting sysfs
        userns: Better restrictions on when proc and sysfs can be mounted
        vfs: Don't copy mount bind mounts of /proc/<pid>/ns/mnt between namespaces
        kernel/nsproxy.c: Improving a snippet of code.
        proc: Restrict mounting the proc filesystem
        vfs: Lock in place mounts from more privileged users
      c7c4591d
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 11c7b03d
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "Nothing major for this kernel, just maintenance updates"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (21 commits)
        apparmor: add the ability to report a sha1 hash of loaded policy
        apparmor: export set of capabilities supported by the apparmor module
        apparmor: add the profile introspection file to interface
        apparmor: add an optional profile attachment string for profiles
        apparmor: add interface files for profiles and namespaces
        apparmor: allow setting any profile into the unconfined state
        apparmor: make free_profile available outside of policy.c
        apparmor: rework namespace free path
        apparmor: update how unconfined is handled
        apparmor: change how profile replacement update is done
        apparmor: convert profile lists to RCU based locking
        apparmor: provide base for multiple profiles to be replaced at once
        apparmor: add a features/policy dir to interface
        apparmor: enable users to query whether apparmor is enabled
        apparmor: remove minimum size check for vmalloc()
        Smack: parse multiple rules per write to load2, up to PAGE_SIZE-1 bytes
        Smack: network label match fix
        security: smack: add a hash table to quicken smk_find_entry()
        security: smack: fix memleak in smk_write_rules_list()
        xattr: Constify ->name member of "struct xattr".
        ...
      11c7b03d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 6be48f29
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "Here is the crypto update for 3.12:
      
         - Added MODULE_SOFTDEP to allow pre-loading of modules.
         - Reinstated crct10dif driver using the module softdep feature.
         - Allow via rng driver to be auto-loaded.
      
         - Split large input data when necessary in nx.
         - Handle zero length messages correctly for GCM/XCBC in nx.
         - Handle SHA-2 chunks bigger than block size properly in nx.
      
         - Handle unaligned lengths in omap-aes.
         - Added SHA384/SHA512 to omap-sham.
         - Added OMAP5/AM43XX SHAM support.
         - Added OMAP4 TRNG support.
      
         - Misc fixes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (66 commits)
        Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"
        hwrng: via - Add MODULE_DEVICE_TABLE
        crypto: fcrypt - Fix bitoperation for compilation with clang
        crypto: nx - fix SHA-2 for chunks bigger than block size
        crypto: nx - fix GCM for zero length messages
        crypto: nx - fix XCBC for zero length messages
        crypto: nx - fix limits to sg lists for AES-CCM
        crypto: nx - fix limits to sg lists for AES-XCBC
        crypto: nx - fix limits to sg lists for AES-GCM
        crypto: nx - fix limits to sg lists for AES-CTR
        crypto: nx - fix limits to sg lists for AES-CBC
        crypto: nx - fix limits to sg lists for AES-ECB
        crypto: nx - add offset to nx_build_sg_lists()
        padata - Register hotcpu notifier after initialization
        padata - share code between CPU_ONLINE and CPU_DOWN_FAILED, same to CPU_DOWN_PREPARE and CPU_UP_CANCELED
        hwrng: omap - reorder OMAP TRNG driver code
        crypto: omap-sham - correct dma burst size
        crypto: omap-sham - Enable Polling mode if DMA fails
        crypto: tegra-aes - bitwise vs logical and
        crypto: sahara - checking the wrong variable
        ...
      6be48f29
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 0ffb01d9
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "A quick set of fixes, some to deal with fallout from yesterday's
        net-next merge.
      
         1) Fix compilation of bnx2x driver with CONFIG_BNX2X_SRIOV disabled,
            from Dmitry Kravkov.
      
         2) Fix a bnx2x regression caused by one of Dave Jones's mistaken
            braces changes, from Eilon Greenstein.
      
         3) Add some protective filtering in the netlink tap code, from Daniel
            Borkmann.
      
         4) Fix TCP congestion window growth regression after timeouts, from
            Yuchung Cheng.
      
         5) Correctly adjust TCP's rcv_ssthresh for out of order packets, from
            Eric Dumazet"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        tcp: properly increase rcv_ssthresh for ofo packets
        net: add documentation for BQL helpers
        mlx5: remove unused MLX5_DEBUG param in Kconfig
        bnx2x: Restore a call to config_init
        bnx2x: fix broken compilation with CONFIG_BNX2X_SRIOV is not set
        tcp: fix no cwnd growth after timeout
        net: netlink: filter particular protocols from analyzers
      0ffb01d9
    • Trond Myklebust's avatar
      NFSv4: Fix security auto-negotiation · 5e6b1990
      Trond Myklebust authored
      NFSv4 security auto-negotiation has been broken since
      commit 4580a92d (NFS:
      Use server-recommended security flavor by default (NFSv3))
      because nfs4_try_mount() will automatically select AUTH_SYS
      if it sees no auth flavours.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: Chuck Lever <chuck.lever@oracle.com>
      5e6b1990
    • Trond Myklebust's avatar
    • Trond Myklebust's avatar
      NFS: Clean up the auth flavour array mess · 74c98811
      Trond Myklebust authored
      What is the point of having a 'auth_flavor_len' field, if it is
      always set to 1, and can't be used to determine if the user has
      selected an auth flavour?
      This cleanup goes back to using auth_flavor_len for its original
      intended purpose, and gets rid of the ad-hoc replacements.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      74c98811
    • Linus Torvalds's avatar
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 7b4022fa
      Linus Torvalds authored
      Pull hwmon fixes from Jean Delvare.
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        hwmon: (emc6w201) Do not declare enum variable
        hwmon: (w83792d) Update module author
      7b4022fa
    • Linus Torvalds's avatar
      Merge tag 'gpio-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 27c7651a
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v3.12 series:
      
         - A new driver for the TZ1090 PDC which is used on the metag
           architecture.
      
         - A new driver for the Kontron ETX or COMexpress GPIO block.  This is
           found on some ETX x86 devices.
      
         - A new driver for the Fintek Super-I/O chips, used on some x86
           boards.
      
         - Added device tree probing on a few select GPIO blocks.
      
         - Drop the Exynos support from the Samsung GPIO driver.
      
           The Samsung maintainers have moved over to use the modernized pin
           control driver to provide GPIO for the modern platforms instead.
      
         - The usual bunch of non-critical fixes and cleanups"
      
      * tag 'gpio-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (36 commits)
        gpio: return -ENOTSUPP if debounce cannot be set
        gpio: improve error path in gpiolib
        gpio: add GPIO support for F71882FG and F71889F
        of: add vendor prefix for Microchip Technology Inc
        gpio: mcp23s08: rename the device tree property
        gpio: samsung: Drop support for Exynos SoCs
        gpio: pcf857x: Remove pdata argument to pcf857x_irq_domain_init()
        gpio: pcf857x: Sort headers alphabetically
        gpio: max7301: Reverting "Do not force SPI speed when using OF Platform"
        gpio: Fix bit masking in Kontron PLD GPIO driver
        gpio: pca953x: fix gpio input on gpio offsets >= 8
        drivers/gpio: simplify use of devm_ioremap_resource
        drivers/gpio/gpio-omap.c: convert comma to semicolon
        gpio-lynxpoint: Fix warning about unbalanced pm_runtime_enable
        gpio: Fix platform driver name in Kontron PLD GPIO driver
        gpio: adnp: Fix segfault if request_threaded_irq fails
        gpio: msm: Staticize local variable 'msm_gpio'
        gpio: gpiolib-of.c: make error message more meaningful by adding the node name and index
        gpio: use dev_get_platdata()
        gpio/mxc: add chained_irq_enter/exit() to mx2_gpio_irq_handler
        ...
      27c7651a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 8b8a7df9
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "A new driver for slidebar on Ideapad laptops and a bunch of assorted
        driver fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (32 commits)
        Input: add SYN_MAX and SYN_CNT constants
        Input: max11801_ts - convert to devm
        Input: egalax-ts - fix typo and improve text
        Input: MAINTAINERS - change maintainer for cyttsp driver
        Input: cyttsp4 - kill 'defined but not used' compiler warnings
        Input: add driver for slidebar on Lenovo IdeaPad laptops
        Input: omap-keypad - set up irq type from DT
        Input: omap-keypad - enable wakeup capability for keypad.
        Input: omap-keypad - clear interrupts on open
        Input: omap-keypad - convert to threaded IRQ
        Input: omap-keypad - use bitfiled instead of hardcoded values
        Input: cyttsp4 - remove useless NULL test from cyttsp4_watchdog_timer()
        Input: wacom - fix error return code in wacom_probe()
        Input: as5011 - fix error return code in as5011_probe()
        Input: keyboard, serio - simplify use of devm_ioremap_resource
        Input: tegra-kbc - simplify use of devm_ioremap_resource
        Input: htcpen - fix incorrect placement of __initdata
        Input: qt1070 - add power management ops
        Input: wistron_btns - add MODULE_DEVICE_TABLE
        Input: wistron_btns - mark the Medion MD96500 keymap as tested
        ...
      8b8a7df9
    • Linus Torvalds's avatar
      Revert "Input: introduce BTN/ABS bits for drums and guitars" · b04c99e3
      Linus Torvalds authored
      This reverts commits 61e00655, 73f8645d and 8e22ecb6:
        "Input: introduce BTN/ABS bits for drums and guitars"
        "HID: wiimote: add support for Guitar-Hero drums"
        "HID: wiimote: add support for Guitar-Hero guitars"
      
      The extra new ABS_xx values resulted in ABS_MAX no longer being a
      power-of-two, which broke the comparison logic.  It also caused the
      ioctl numbers to overflow into the next byte, causing problems for that.
      
      We'll try again for 3.13.
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Benjamin Tissoires <benjamin.tissoires@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b04c99e3
    • Richard Weinberger's avatar
      um: Add irq chip um/mask handlers · 81bab4c3
      Richard Weinberger authored
      These handlers are not optional and need in our case
      dummy implementions to avoid NULL pointer bugs within
      the irq core code.
      Reported-and-tested-by: default avatarToralf Foester <toralf.foerster@gmx.de>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      81bab4c3
    • Richard Weinberger's avatar
      um: prctl: Do not include linux/ptrace.h · b5c04da0
      Richard Weinberger authored
      On recent toolchains we hit:
      In file included from arch/x86/um/os-Linux/prctl.c:7:0:
      /usr/include/linux/ptrace.h:58:8: error: redefinition of ‘struct
      ptrace_peeksiginfo_args’ struct ptrace_peeksiginfo_args {
              ^
      In file included from arch/x86/um/os-Linux/prctl.c:6:0:
      /usr/include/sys/ptrace.h:191:8: note: originally defined here
       struct ptrace_peeksiginfo_args
              ^
      make[2]: *** [arch/x86/um/os-Linux/prctl.o] Error 1
      make[1]: *** [arch/x86/um/os-Linux] Error 2
      make: *** [arch/x86/um] Error 2
      
      The solution is not to include linux/ptrace.h and obtain
      the arch specific ptrace command from asm/ptrace.h.
      Reported-and-tested-by: default avatarDavid Oberhollenzer <david.oberhollenzer@tele2.at>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      b5c04da0
    • Richard Weinberger's avatar
      um: Run UML in it's own session. · 25012721
      Richard Weinberger authored
      If UML is not run by a shell it can happen that UML
      will kill unrelated proceses upon a fatal exit because
      it issues a kill(0, ...).
      To prevent such oddities we create a new session in main().
      Reported-and-tested-by: default avatarRichard W.M. Jones <rjones@redhat.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      25012721
    • Richard Weinberger's avatar
      um: Cleanup SIGTERM handling · 91d44ff8
      Richard Weinberger authored
      Richard reported that some UML processes survive if the UML
      main process receives a SIGTERM.
      This issue was caused by a wrongly placed signal(SIGTERM, SIG_DFL)
      in init_new_thread_signals().
      It disabled the UML exit handler accidently for some processes.
      The correct solution is to disable the fatal handler for all
      UML helper threads/processes.
      Such that last_ditch_exit() does not get called multiple times
      and all processes can exit due to SIGTERM.
      Reported-and-tested-by: default avatarRichard W.M. Jones <rjones@redhat.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      91d44ff8
    • Richard Weinberger's avatar
      um: ubd: Introduce submit_request() · bc1d72e7
      Richard Weinberger authored
      Just a clean-up patch to remove the open coded
      variants and to ensure that all requests are submitted the
      same way.
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      bc1d72e7
    • Richard Weinberger's avatar
      um: ubd: Add REQ_FLUSH suppport · 805f11a0
      Richard Weinberger authored
      UML's block device driver does not support write barriers,
      to support this this patch adds REQ_FLUSH suppport.
      Every time the block layer sends a REQ_FLUSH we fsync() now
      our backing file to guarantee data consistency.
      Reported-and-tested-by: default avatarRichard W.M. Jones <rjones@redhat.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      805f11a0