1. 01 Aug, 2012 3 commits
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 6dbb35b0
      Linus Torvalds authored
      Pull second wave of NFS client updates from Trond Myklebust:
      
       - Patches from Bryan to allow splitting of the NFSv2/v3/v4 code into
         separate modules.
      
       - Fix Oopses in the NFSv4 idmapper
      
       - Fix a deadlock whereby rpciod tries to allocate a new socket and ends
         up recursing into the NFS code due to memory reclaim.
      
       - Increase the number of permitted callback connections.
      
      * tag 'nfs-for-3.6-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        nfs: explicitly reject LOCK_MAND flock() requests
        nfs: increase number of permitted callback connections.
        SUNRPC: return negative value in case rpcbind client creation error
        NFS: Convert v4 into a module
        NFS: Convert v3 into a module
        NFS: Convert v2 into a module
        NFS: Keep module parameters in the generic NFS client
        NFS: Split out remaining NFS v4 inode functions
        NFS: Pass super operations and xattr handlers in the nfs_subversion
        NFS: Only initialize the ACL client in the v3 case
        NFS: Create a try_mount rpc op
        NFS: Remove the NFS v4 xdev mount function
        NFS: Add version registering framework
        NFS: Fix a number of bugs in the idmapper
        nfs: skip commit in releasepage if we're freeing memory for fs-related reasons
        sunrpc: clarify comments on rpc_make_runnable
        pnfsblock: bail out partial page IO
      6dbb35b0
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · fd37ce34
      Linus Torvalds authored
      Pull networking update from David S. Miller:
       "I think Eric Dumazet and I have dealt with all of the known routing
        cache removal fallout.  Some other minor fixes all around.
      
        1) Fix RCU of cached routes, particular of output routes which require
           liberation via call_rcu() instead of call_rcu_bh().  From Eric
           Dumazet.
      
        2) Make sure we purge net device references in cached routes properly.
      
        3) TG3 driver bug fixes from Michael Chan.
      
        4) Fix reported 'expires' value in ipv6 routes, from Li Wei.
      
        5) TUN driver ioctl leaks kernel bytes to userspace, from Mathias
           Krause."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (22 commits)
        ipv4: Properly purge netdev references on uncached routes.
        ipv4: Cache routes in nexthop exception entries.
        ipv4: percpu nh_rth_output cache
        ipv4: Restore old dst_free() behavior.
        bridge: make port attributes const
        ipv4: remove rt_cache_rebuild_count
        net: ipv4: fix RCU races on dst refcounts
        net: TCP early demux cleanup
        tun: Fix formatting.
        net/tun: fix ioctl() based info leaks
        tg3: Update version to 3.124
        tg3: Fix race condition in tg3_get_stats64()
        tg3: Add New 5719 Read DMA workaround
        tg3: Fix Read DMA workaround for 5719 A0.
        tg3: Request APE_LOCK_PHY before PHY access
        ipv6: fix incorrect route 'expires' value passed to userspace
        mISDN: Bugfix only few bytes are transfered on a connection
        seeq: use PTR_RET at init_module of driver
        bnx2x: remove cast around the kmalloc in bnx2x_prev_mark_path
        ipv4: clean up put_child
        ...
      fd37ce34
    • Linus Torvalds's avatar
      Merge tag 'for-v3.6' of git://git.infradead.org/battery-2.6 · 4b24ff71
      Linus Torvalds authored
      Pull battery updates from Anton Vorontsov:
       "The tag contains just a few battery-related changes for v3.6.  It's is
        all pretty straightforward, except one thing.
      
        One of our patches added thermal support for power supply class, but
        thermal/ subsystem changed under our feet.  We (well, Stephen, that
        is) caught the issue and it was decided[1] that I'd just delay the
        battery pull request, and then will fix it up by merging upstream back
        into battery tree at the specific commit.
      
        That's not all though: another[2] small fixup for thermal subsystem
        was needed to get rid of a warning in power supply subsystem (the
        warning was not drivers/power's "fault", the thermal registration
        function just needed a proper const annotation, which is also done by
        a small commit on top of the merge.
      
        So, to sum this up:
         - The 'master' branch of the battery tree was in the -next tree for
           weeks, was never rebased, altered etc.  It should be all OK;
         - Although, for-v3.6 tag contains the 'master' branch + merge + the
           warning fix.
      
        [1] http://lkml.org/lkml/2012/6/19/23
        [2] http://lkml.org/lkml/2012/6/18/28"
      
      * tag 'for-v3.6' of git://git.infradead.org/battery-2.6: (23 commits)
        thermal: Constify 'type' argument for the registration routine
        olpc-battery: update CHARGE_FULL_DESIGN property for BYD LiFe batteries
        olpc-battery: Add VOLTAGE_MAX_DESIGN property
        charger-manager: Fix build break related to EXTCON
        lp8727_charger: Move header file into platform_data directory
        power_supply: Add min/max alert properties for CAPACITY, TEMP, TEMP_AMBIENT
        bq27x00_battery: Add support for BQ27425 chip
        charger-manager: Set current limit of regulator for over current protection
        charger-manager: Use EXTCON Subsystem to detect charger cables for charging
        test_power: Add VOLTAGE_NOW and BATTERY_TEMP properties
        test_power: Add support for USB AC source
        gpio-charger: Use cansleep version of gpio_set_value
        bq27x00_battery: Add support for power average and health properties
        sbs-battery: Don't trigger false supply_changed event
        twl4030_charger: Allow charger to control the regulator that feeds it
        twl4030_charger: Add backup-battery charging
        twl4030_charger: Fix some typos
        max17042_battery: Support CHARGE_COUNTER power supply attribute
        smb347-charger: Add constant charge and current properties
        power_supply: Add constant charge_current and charge_voltage properties
        ...
      4b24ff71
  2. 31 Jul, 2012 37 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bca1a5c0
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The biggest changes are Intel Nehalem-EX PMU uncore support, uprobes
        updates/cleanups/fixes from Oleg and diverse tooling updates (mostly
        fixes) now that Arnaldo is back from vacation."
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        uprobes: __replace_page() needs munlock_vma_page()
        uprobes: Rename vma_address() and make it return "unsigned long"
        uprobes: Fix register_for_each_vma()->vma_address() check
        uprobes: Introduce vaddr_to_offset(vma, vaddr)
        uprobes: Teach build_probe_list() to consider the range
        uprobes: Remove insert_vm_struct()->uprobe_mmap()
        uprobes: Remove copy_vma()->uprobe_mmap()
        uprobes: Fix overflow in vma_address()/find_active_uprobe()
        uprobes: Suppress uprobe_munmap() from mmput()
        uprobes: Uprobe_mmap/munmap needs list_for_each_entry_safe()
        uprobes: Clean up and document write_opcode()->lock_page(old_page)
        uprobes: Kill write_opcode()->lock_page(new_page)
        uprobes: __replace_page() should not use page_address_in_vma()
        uprobes: Don't recheck vma/f_mapping in write_opcode()
        perf/x86: Fix missing struct before structure name
        perf/x86: Fix format definition of SNB-EP uncore QPI box
        perf/x86: Make bitfield unsigned
        perf/x86: Fix LLC-* and node-* events on Intel SandyBridge
        perf/x86: Add Intel Nehalem-EX uncore support
        perf/x86: Fix typo in format definition of uncore PCU filter
        ...
      bca1a5c0
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · ec7a19bf
      Linus Torvalds authored
      Pull powerpc updates from Benjamin Herrenschmidt:
       "Kumar sent me a handful of Freescale related fixes and I added another
        regression fix to the pile.
      
        PS.  I -will- eventually learn about that signed tag business :-)"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/kvm/book3s_32: Fix MTMSR_EERI macro
        powerpc/85xx: p1022ds: fix DIU/LBC switching with NAND enabled
        powerpc/85xx: p1022ds: disable the NAND flash node if video is enabled
        powerpc/85xx: Fix sram_offset parameter type
        powerpc/85xx: P3041DS - change espi input-clock from 40MHz to 35MHz
        powerpc/85xx: Fix pci base address error for p2020rdb-pc in dts
      ec7a19bf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 26847fa6
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "This it the second batch of s390 patches for the 3.6 merge window.
        Included is enablement for two common code changes, killable page
        faults and sorted exception tables.  And the regular set of cleanup
        and bug fix patches."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: make use of user_mode() macro where possible
        s390/mm: rename user_mode variable to addressing_mode
        s390/mm: fix fault handling for page table walk case
        s390/mm: make page faults killable
        s390: update defconfig
        s390/mm: downgrade page table after fork of a 31 bit process
        s390/ipl: Use diagnose 8 command separation
        s390/linker script: use RO_DATA_SECTION
        s390/exceptions: sort exception table at build time
        s390/debug: remove module_exit function / move EXPORT_SYMBOLs
      26847fa6
    • David S. Miller's avatar
      ipv4: Properly purge netdev references on uncached routes. · caacf05e
      David S. Miller authored
      When a device is unregistered, we have to purge all of the
      references to it that may exist in the entire system.
      
      If a route is uncached, we currently have no way of accomplishing
      this.
      
      So create a global list that is scanned when a network device goes
      down.  This mirrors the logic in net/core/dst.c's dst_ifdown().
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      caacf05e
    • David S. Miller's avatar
      c5038a83
    • Linus Torvalds's avatar
      Merge branch 'nfsd-next' of git://linux-nfs.org/~bfields/linux · 08843b79
      Linus Torvalds authored
      Pull nfsd changes from J. Bruce Fields:
       "This has been an unusually quiet cycle--mostly bugfixes and cleanup.
        The one large piece is Stanislav's work to containerize the server's
        grace period--but that in itself is just one more step in a
        not-yet-complete project to allow fully containerized nfs service.
      
        There are a number of outstanding delegation, container, v4 state, and
        gss patches that aren't quite ready yet; 3.7 may be wilder."
      
      * 'nfsd-next' of git://linux-nfs.org/~bfields/linux: (35 commits)
        NFSd: make boot_time variable per network namespace
        NFSd: make grace end flag per network namespace
        Lockd: move grace period management from lockd() to per-net functions
        LockD: pass actual network namespace to grace period management functions
        LockD: manage grace list per network namespace
        SUNRPC: service request network namespace helper introduced
        NFSd: make nfsd4_manager allocated per network namespace context.
        LockD: make lockd manager allocated per network namespace
        LockD: manage grace period per network namespace
        Lockd: add more debug to host shutdown functions
        Lockd: host complaining function introduced
        LockD: manage used host count per networks namespace
        LockD: manage garbage collection timeout per networks namespace
        LockD: make garbage collector network namespace aware.
        LockD: mark host per network namespace on garbage collect
        nfsd4: fix missing fault_inject.h include
        locks: move lease-specific code out of locks_delete_lock
        locks: prevent side-effects of locks_release_private before file_lock is initialized
        NFSd: set nfsd_serv to NULL after service destruction
        NFSd: introduce nfsd_destroy() helper
        ...
      08843b79
    • Eric Dumazet's avatar
      ipv4: percpu nh_rth_output cache · d26b3a7c
      Eric Dumazet authored
      Input path is mostly run under RCU and doesnt touch dst refcnt
      
      But output path on forwarding or UDP workloads hits
      badly dst refcount, and we have lot of false sharing, for example
      in ipv4_mtu() when reading rt->rt_pmtu
      
      Using a percpu cache for nh_rth_output gives a nice performance
      increase at a small cost.
      
      24 udpflood test on my 24 cpu machine (dummy0 output device)
      (each process sends 1.000.000 udp frames, 24 processes are started)
      
      before : 5.24 s
      after : 2.06 s
      For reference, time on linux-3.5 : 6.60 s
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Tested-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d26b3a7c
    • Eric Dumazet's avatar
      ipv4: Restore old dst_free() behavior. · 54764bb6
      Eric Dumazet authored
      commit 404e0a8b (net: ipv4: fix RCU races on dst refcounts) tried
      to solve a race but added a problem at device/fib dismantle time :
      
      We really want to call dst_free() as soon as possible, even if sockets
      still have dst in their cache.
      dst_release() calls in free_fib_info_rcu() are not welcomed.
      
      Root of the problem was that now we also cache output routes (in
      nh_rth_output), we must use call_rcu() instead of call_rcu_bh() in
      rt_free(), because output route lookups are done in process context.
      
      Based on feedback and initial patch from David Miller (adding another
      call_rcu_bh() call in fib, but it appears it was not the right fix)
      
      I left the inet_sk_rx_dst_set() helper and added __rcu attributes
      to nh_rth_output and nh_rth_input to better document what is going on in
      this code.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54764bb6
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · cc8362b1
      Linus Torvalds authored
      Pull Ceph changes from Sage Weil:
       "Lots of stuff this time around:
      
         - lots of cleanup and refactoring in the libceph messenger code, and
           many hard to hit races and bugs closed as a result.
         - lots of cleanup and refactoring in the rbd code from Alex Elder,
           mostly in preparation for the layering functionality that will be
           coming in 3.7.
         - some misc rbd cleanups from Josh Durgin that are finally going
           upstream
         - support for CRUSH tunables (used by newer clusters to improve the
           data placement)
         - some cleanup in our use of d_parent that Al brought up a while back
         - a random collection of fixes across the tree
      
        There is another patch coming that fixes up our ->atomic_open()
        behavior, but I'm going to hammer on it a bit more before sending it."
      
      Fix up conflicts due to commits that were already committed earlier in
      drivers/block/rbd.c, net/ceph/{messenger.c, osd_client.c}
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (132 commits)
        rbd: create rbd_refresh_helper()
        rbd: return obj version in __rbd_refresh_header()
        rbd: fixes in rbd_header_from_disk()
        rbd: always pass ops array to rbd_req_sync_op()
        rbd: pass null version pointer in add_snap()
        rbd: make rbd_create_rw_ops() return a pointer
        rbd: have __rbd_add_snap_dev() return a pointer
        libceph: recheck con state after allocating incoming message
        libceph: change ceph_con_in_msg_alloc convention to be less weird
        libceph: avoid dropping con mutex before fault
        libceph: verify state after retaking con lock after dispatch
        libceph: revoke mon_client messages on session restart
        libceph: fix handling of immediate socket connect failure
        ceph: update MAINTAINERS file
        libceph: be less chatty about stray replies
        libceph: clear all flags on con_close
        libceph: clean up con flags
        libceph: replace connection state bits with states
        libceph: drop unnecessary CLOSED check in socket state change callback
        libceph: close socket directly from ceph_con_close()
        ...
      cc8362b1
    • Jeff Layton's avatar
      nfs: explicitly reject LOCK_MAND flock() requests · ad0fcd4e
      Jeff Layton authored
      We have no mechanism to emulate LOCK_MAND locks on NFSv4, so explicitly
      return -EINVAL if someone requests it.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      ad0fcd4e
    • NeilBrown's avatar
      nfs: increase number of permitted callback connections. · b042414f
      NeilBrown authored
      By default a sunrpc service is limited to (N+3)*20 connections
      where N is the number of threads.  This is 80 when N==1.
      If this number is exceeded a warning is printed suggesting that
      the number of threads be increased.  However with services which
      run a single thread, this is impossible.
      
      For such services there is a ->sv_maxconn setting that can be
      used to forcibly increase the limit, and silence the message.
      This is used by lockd.
      
      The nfs client uses a sunrpc service to handle callbacks and
      it too is single-threaded, so to avoid the useless messages,
      and to allow a reasonable number of concurrent connections,
      we need to set ->sv_maxconn.  1024 seems like a good number.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      b042414f
    • Anton Vorontsov's avatar
      thermal: Constify 'type' argument for the registration routine · 4b1bf587
      Anton Vorontsov authored
      thermal_zone_device_register() does not modify 'type' argument, so it is
      safe to declare it as const. Otherwise, if we pass a const string, we are
      getting the ugly warning:
      
      CC drivers/power/power_supply_core.o
      drivers/power/power_supply_core.c: In function 'psy_register_thermal':
      drivers/power/power_supply_core.c:204:6: warning: passing argument 1 of 'thermal_zone_device_register' discards 'const' qualifier from pointer target type [enabled by default]
      include/linux/thermal.h:140:29: note: expected 'char *' but argument is of type 'const char *'
      Signed-off-by: default avatarAnton Vorontsov <anton.vorontsov@linaro.org>
      Acked-by: default avatarJean Delvare <khali@linux-fr.org>
      4b1bf587
    • Anton Vorontsov's avatar
      Merge with upstream to accommodate with thermal changes · e6db06a5
      Anton Vorontsov authored
      This merge is performed to take commit c56f5c03 ("Thermal: Make
      Thermal trip points writeable") out of Linus' tree and then fixup power
      supply class. This is needed since thermal stuff added a new argument:
      
        CC      drivers/power/power_supply_core.o
      drivers/power/power_supply_core.c: In function ‘psy_register_thermal’:
      drivers/power/power_supply_core.c:204:6: warning: passing argument 3 of ‘thermal_zone_device_register’ makes integer from pointer without a cast [enabled by default]
      include/linux/thermal.h:154:29: note: expected ‘int’ but argument is of type ‘struct power_supply *’
      drivers/power/power_supply_core.c:204:6: error: too few arguments to function ‘thermal_zone_device_register’
      include/linux/thermal.h:154:29: note: declared here
      make[1]: *** [drivers/power/power_supply_core.o] Error 1
      make: *** [drivers/power/] Error 2
      Signed-off-by: default avatarAnton Vorontsov <anton.vorontsov@linaro.org>
      e6db06a5
    • Alexander Graf's avatar
      powerpc/kvm/book3s_32: Fix MTMSR_EERI macro · ad36cb0d
      Alexander Graf authored
      Commit b38c77d8 moved the MTMSR_EERI macro from the KVM code to generic
      ppc_asm.h code. However, while adding it in the headers for the ppc32 case,
      it missed out to remove the former definition in the KVM code.
      
      This patch fixes compilation on server type PPC32 targets with CONFIG_KVM
      enabled.
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ad36cb0d
    • Benjamin Herrenschmidt's avatar
      Merge remote-tracking branch 'kumar/merge' into merge · b6965f79
      Benjamin Herrenschmidt authored
      Kumar says:
      
      "A few patches that missed the initial 3.6 window.  These are bug fixes at
      this point."
      b6965f79
    • Linus Torvalds's avatar
      Merge tag 'writeback-proportions' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux · 2e3ee613
      Linus Torvalds authored
      Pull writeback updates from Wu Fengguang:
       "Use time based periods to age the writeback proportions, which can
        adapt equally well to fast/slow devices."
      
      Fix up trivial conflict in comment in fs/sync.c
      
      * tag 'writeback-proportions' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
        writeback: Fix some comment errors
        block: Convert BDI proportion calculations to flexible proportions
        lib: Fix possible deadlock in flexible proportion code
        lib: Proportions with flexible period
      2e3ee613
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.6-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 1fad1e9a
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Features include:
         - More preparatory patches for modularising NFSv2/v3/v4.  Split out
           the various NFSv2/v3/v4-specific code into separate files
         - More preparation for the NFSv4 migration code
         - Ensure that OPEN(O_CREATE) observes the pNFS mds threshold
           parameters
         - pNFS fast failover when the data servers are down
         - Various cleanups and debugging patches"
      
      * tag 'nfs-for-3.6-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (67 commits)
        nfs: fix fl_type tests in NFSv4 code
        NFS: fix pnfs regression with directio writes
        NFS: fix pnfs regression with directio reads
        sunrpc: clnt: Add missing braces
        nfs: fix stub return type warnings
        NFS: exit_nfs_v4() shouldn't be an __exit function
        SUNRPC: Add a missing spin_unlock to gss_mech_list_pseudoflavors
        NFS: Split out NFS v4 client functions
        NFS: Split out the NFS v4 filesystem types
        NFS: Create a single nfs_clone_super() function
        NFS: Split out NFS v4 server creating code
        NFS: Initialize the NFS v4 client from init_nfs_v4()
        NFS: Move the v4 getroot code to nfs4getroot.c
        NFS: Split out NFS v4 file operations
        NFS: Initialize v4 sysctls from nfs_init_v4()
        NFS: Create an init_nfs_v4() function
        NFS: Split out NFS v4 inode operations
        NFS: Split out NFS v3 inode operations
        NFS: Split out NFS v2 inode operations
        NFS: Clean up nfs4_proc_setclientid() and friends
        ...
      1fad1e9a
    • Linus Torvalds's avatar
      Merge tag 'mfd-for-linus-3.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 · bbeb0af2
      Linus Torvalds authored
      Pull MFD fix from Samuel Ortiz:
       "This one fixes an s5m8767 regulator build breakage due to a merge
        conflict caused by the MFD s5m API changes."
      
      * tag 'mfd-for-linus-3.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
        regulator: Fix an s5m8767 build failure
      bbeb0af2
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 6df419e4
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       "This is the first part of the media patches for v3.6.
      
        This patch series contain:
         - new DVB frontend: rtl2832
         - new video drivers: adv7393
         - some unused files got removed
         - a selection API cleanup between V4L2 and V4L2 subdev API's
         - a major redesign at v4l-ioctl2, in order to clean it up
         - several driver fixes and improvements."
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (174 commits)
        v4l: Export v4l2-common.h in include/linux/Kbuild
        media: Revert "[media] Terratec Cinergy S2 USB HD Rev.2"
        [media] media: Use pr_info not homegrown pr_reg macro
        [media] Terratec Cinergy S2 USB HD Rev.2
        [media] v4l: Correct conflicting V4L2 subdev selection API documentation
        [media] Feature removal: V4L2 selections API target and flag definitions
        [media] v4l: Unify selection flags documentation
        [media] v4l: Unify selection flags
        [media] v4l: Common documentation for selection targets
        [media] v4l: Unify selection targets across V4L2 and V4L2 subdev interfaces
        [media] v4l: Remove "_ACTUAL" from subdev selection API target definition names
        [media] V4L: Remove "_ACTIVE" from the selection target name definitions
        [media] media: dvb-usb: print mac address via native %pM
        [media] s5p-tv: Use module_i2c_driver in sii9234_drv.c file
        [media] media: gpio-ir-recv: add allowed_protos for platform data
        [media] s5p-jpeg: Use module_platform_driver in jpeg-core.c file
        [media] saa7134: fix spelling of detach in label
        [media] cx88-blackbird: replace ioctl by unlocked_ioctl
        [media] cx88: don't use current_norm
        [media] cx88: fix a number of v4l2-compliance violations
        ...
      6df419e4
    • Alex Elder's avatar
      rbd: create rbd_refresh_helper() · 1fe5e993
      Alex Elder authored
      Create a simple helper that handles the common case of calling
      __rbd_refresh_header() while holding the ctl_mutex.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      1fe5e993
    • Alex Elder's avatar
      rbd: return obj version in __rbd_refresh_header() · b813623a
      Alex Elder authored
      Add a new parameter to __rbd_refresh_header() through which the
      version of the header object is passed back to the caller.  In most
      cases this isn't needed.  The main motivation is to normalize
      (almost) all calls to __rbd_refresh_header() so they are all
      wrapped immediately by mutex_lock()/mutex_unlock().
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      b813623a
    • Alex Elder's avatar
      rbd: fixes in rbd_header_from_disk() · ccece235
      Alex Elder authored
      This fixes a few issues in rbd_header_from_disk():
          - There is a check intended to catch overflow, but it's wrong in
            two ways.
      	- First, the type we don't want to overflow is size_t, not
      	  unsigned int, and there is now a SIZE_MAX we can use for
      	  use with that type.
      	- Second, we're allocating the snapshot ids and snapshot
      	  image sizes separately (each has type u64; on disk they
                grouped together as a rbd_image_header_ondisk structure).
      	  So we can use the size of u64 in this overflow check.
          - If there are no snapshots, then there should be no snapshot
            names.  Enforce this, and issue a warning if we encounter a
            header with no snapshots but a non-zero snap_names_len.
          - When saving the snapshot names into the header, be more direct
            in defining the offset in the on-disk structure from which
            they're being copied by using "snap_count" rather than "i"
            in the array index.
          - If an error occurs, the "snapc" and "snap_names" fields are
            freed at the end of the function.  Make those fields be null
            pointers after they're freed, to be explicit that they are
            no longer valid.
          - Finally, move the definition of the local variable "i" to the
            innermost scope in which it's needed.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      ccece235
    • Alex Elder's avatar
      rbd: always pass ops array to rbd_req_sync_op() · 913d2fdc
      Alex Elder authored
      All of the callers of rbd_req_sync_op() except one pass a non-null
      "ops" pointer.  The only one that does not is rbd_req_sync_read(),
      which passes CEPH_OSD_OP_READ as its "opcode" and, CEPH_OSD_FLAG_READ
      for "flags".
      
      By allocating the ops array in rbd_req_sync_read() and moving the
      special case code for the null ops pointer into it, it becomes
      clear that much of that code is not even necessary.
      
      In addition, the "opcode" argument to rbd_req_sync_op() is never
      actually used, so get rid of that.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      913d2fdc
    • Alex Elder's avatar
      rbd: pass null version pointer in add_snap() · d67d4be5
      Alex Elder authored
      rbd_header_add_snap() passes the address of a version variable to
      rbd_req_sync_exec(), but it ignores the result.  Just pass a null
      pointer instead.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      d67d4be5
    • Alex Elder's avatar
      rbd: make rbd_create_rw_ops() return a pointer · 57cfc106
      Alex Elder authored
      Either rbd_create_rw_ops() will succeed, or it will fail because a
      memory allocation failed.  Have it just return a valid pointer or
      null rather than stuffing a pointer into a provided address and
      returning an errno.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      57cfc106
    • Alex Elder's avatar
      rbd: have __rbd_add_snap_dev() return a pointer · 4e891e0a
      Alex Elder authored
      It's not obvious whether the snapshot pointer whose address is
      provided to __rbd_add_snap_dev() will be assigned by that function.
      Change it to return the snapshot, or a pointer-coded errno in the
      event of a failure.
      Signed-off-by: default avatarAlex Elder <elder@inktank.com>
      Reviewed-by: Josh Durgin <josh.durgin@inktank.com> 
      4e891e0a
    • Sage Weil's avatar
      libceph: recheck con state after allocating incoming message · 61399191
      Sage Weil authored
      We drop the lock when calling the ->alloc_msg() con op, which means
      we need to (a) not clobber con->in_msg without the mutex held, and (b)
      we need to verify that we are still in the OPEN state when we retake
      it to avoid causing any mayhem.  If the state does change, -EAGAIN
      will get us back to con_work() and loop.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      61399191
    • Sage Weil's avatar
      libceph: change ceph_con_in_msg_alloc convention to be less weird · 4740a623
      Sage Weil authored
      This function's calling convention is very limiting.  In particular,
      we can't return any error other than ENOMEM (and only implicitly),
      which is a problem (see next patch).
      
      Instead, return an normal 0 or error code, and make the skip a pointer
      output parameter.  Drop the useless in_hdr argument (we have the con
      pointer).
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      4740a623
    • Sage Weil's avatar
      libceph: avoid dropping con mutex before fault · 8636ea67
      Sage Weil authored
      The ceph_fault() function takes the con mutex, so we should avoid
      dropping it before calling it.  This fixes a potential race with
      another thread calling ceph_con_close(), or _open(), or similar (we
      don't reverify con->state after retaking the lock).
      
      Add annotation so that lockdep realizes we will drop the mutex before
      returning.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      8636ea67
    • Sage Weil's avatar
      libceph: verify state after retaking con lock after dispatch · 7b862e07
      Sage Weil authored
      We drop the con mutex when delivering a message.  When we retake the
      lock, we need to verify we are still in the OPEN state before
      preparing to read the next tag, or else we risk stepping on a
      connection that has been closed.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      7b862e07
    • Sage Weil's avatar
      libceph: revoke mon_client messages on session restart · 4f471e4a
      Sage Weil authored
      Revoke all mon_client messages when we shut down the old connection.
      This is mostly moot since we are re-using the same ceph_connection,
      but it is cleaner.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      4f471e4a
    • Sage Weil's avatar
      libceph: fix handling of immediate socket connect failure · 8007b8d6
      Sage Weil authored
      If the connect() call immediately fails such that sock == NULL, we
      still need con_close_socket() to reset our socket state to CLOSED.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      8007b8d6
    • Sage Weil's avatar
      ceph: update MAINTAINERS file · 09d90327
      Sage Weil authored
       * shiny new inktank.com email addresses
       * add include/linux/crush directory (previous oversight)
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      09d90327
    • Sage Weil's avatar
      libceph: be less chatty about stray replies · 756a16a5
      Sage Weil authored
      There are many (normal) conditions that can lead to us getting
      unexpected replies, include cluster topology changes, osd failures,
      and timeouts.  There's no need to spam the console about it.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      756a16a5
    • Sage Weil's avatar
      libceph: clear all flags on con_close · 43c7427d
      Sage Weil authored
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      43c7427d
    • Sage Weil's avatar
      libceph: clean up con flags · 4a861692
      Sage Weil authored
      Rename flags with CON_FLAG prefix, move the definitions into the c file,
      and (better) document their meaning.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      4a861692
    • Sage Weil's avatar
      libceph: replace connection state bits with states · 8dacc7da
      Sage Weil authored
      Use a simple set of 6 enumerated values for the socket states (CON_STATE_*)
      and use those instead of the state bits.  All of the con->state checks are
      now under the protection of the con mutex, so this is safe.  It also
      simplifies many of the state checks because we can check for anything other
      than the expected state instead of various bits for races we can think of.
      
      This appears to hold up well to stress testing both with and without socket
      failure injection on the server side.
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      8dacc7da