1. 08 6月, 2013 4 次提交
  2. 07 6月, 2013 21 次提交
  3. 06 6月, 2013 11 次提交
    • D
      xfs: increase number of ACL entries for V5 superblocks · 0a8aa193
      Dave Chinner 提交于
      The limit of 25 ACL entries is arbitrary, but baked into the on-disk
      format.  For version 5 superblocks, increase it to the maximum nuber
      of ACLs that can fit into a single xattr.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NMark Tinguely <tinuguely@sgi.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 5c87d4bc)
      0a8aa193
    • D
      xfs: disable noattr2/attr2 mount options for CRC enabled filesystems · f763fd44
      Dave Chinner 提交于
      attr2 format is always enabled for v5 superblock filesystems, so the
      mount options to enable or disable it need to be cause mount errors.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit d3eaace8)
      f763fd44
    • D
      xfs: inode unlinked list needs to recalculate the inode CRC · ad868afd
      Dave Chinner 提交于
      The inode unlinked list manipulations operate directly on the inode
      buffer, and so bypass the inode CRC calculation mechanisms. Hence an
      inode on the unlinked list has an invalid CRC. Fix this by
      recalculating the CRC whenever we modify an unlinked list pointer in
      an inode, ncluding during log recovery. This is trivial to do and
      results in  unlinked list operations always leaving a consistent
      inode in the buffer.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NMark Tinguely <tinguely@sgi.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 0a32c26e)
      ad868afd
    • D
      xfs: fix log recovery transaction item reordering · 75406170
      Dave Chinner 提交于
      There are several constraints that inode allocation and unlink
      logging impose on log recovery. These all stem from the fact that
      inode alloc/unlink are logged in buffers, but all other inode
      changes are logged in inode items. Hence there are ordering
      constraints that recovery must follow to ensure the correct result
      occurs.
      
      As it turns out, this ordering has been working mostly by chance
      than good management. The existing code moves all buffers except
      cancelled buffers to the head of the list, and everything else to
      the tail of the list. The problem with this is that is interleaves
      inode items with the buffer cancellation items, and hence whether
      the inode item in an cancelled buffer gets replayed is essentially
      left to chance.
      
      Further, this ordering causes problems for log recovery when inode
      CRCs are enabled. It typically replays the inode unlink buffer long before
      it replays the inode core changes, and so the CRC recorded in an
      unlink buffer is going to be invalid and hence any attempt to
      validate the inode in the buffer is going to fail. Hence we really
      need to enforce the ordering that the inode alloc/unlink code has
      expected log recovery to have since inode chunk de-allocation was
      introduced back in 2003...
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NMark Tinguely <tinguely@sgi.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit a775ad77)
      75406170
    • D
      xfs: fix remote attribute invalidation for a leaf · ea929536
      Dave Chinner 提交于
      When invalidating an attribute leaf block block, there might be
      remote attributes that it points to. With the recent rework of the
      remote attribute format, we have to make sure we calculate the
      length of the attribute correctly. We aren't doing that in
      xfs_attr3_leaf_inactive(), so fix it.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NMark Tinguely <tinuguely@sgi.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 59913f14)
      ea929536
    • D
      xfs: rework dquot CRCs · bb9b8e86
      Dave Chinner 提交于
      Calculating dquot CRCs when the backing buffer is written back just
      doesn't work reliably. There are several places which manipulate
      dquots directly in the buffers, and they don't calculate CRCs
      appropriately, nor do they always set the buffer up to calculate
      CRCs appropriately.
      
      Firstly, if we log a dquot buffer (e.g. during allocation) it gets
      logged without valid CRC, and so on recovery we end up with a dquot
      that is not valid.
      
      Secondly, if we recover/repair a dquot, we don't have a verifier
      attached to the buffer and hence CRCs are not calculated on the way
      down to disk.
      
      Thirdly, calculating the CRC after we've changed the contents means
      that if we re-read the dquot from the buffer, we cannot verify the
      contents of the dquot are valid, as the CRC is invalid.
      
      So, to avoid all the dquot CRC errors that are being detected by the
      read verifier, change to using the same model as for inodes. That
      is, dquot CRCs are calculated and written to the backing buffer at
      the time the dquot is flushed to the backing buffer. If we modify
      the dquot directly in the backing buffer, calculate the CRC
      immediately after the modification is complete. Hence the dquot in
      the on-disk buffer should always have a valid CRC.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NBen Myers <bpm@sgi.com>
      Signed-off-by: NBen Myers <bpm@sgi.com>
      
      (cherry picked from commit 6fcdc59d)
      bb9b8e86
    • D
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · 143554ac
      David S. Miller 提交于
      Conflicts:
      	net/netfilter/nf_log.c
      
      The conflict in nf_log.c is that in 'net' we added CONFIG_PROC_FS
      protection around foo_proc_entry() calls to fix a build failure,
      whereas in Pablo's tree a guard if() test around a call is
      remove_proc_entry() was removed.  Trivially resolved.
      
      Pablo Neira Ayuso says:
      
      ====================
      The following patchset contains the first batch of
      Netfilter/IPVS updates for your net-next tree, they are:
      
      * Three patches with improvements and code refactorization
        for nfnetlink_queue, from Florian Westphal.
      
      * FTP helper now parses replies without brackets, as RFC1123
        recommends, from Jeff Mahoney.
      
      * Rise a warning to tell everyone about ULOG deprecation,
        NFLOG has been already in the kernel tree for long time
        and supersedes the old logging over netlink stub, from
        myself.
      
      * Don't panic if we fail to load netfilter core framework,
        just bail out instead, from myself.
      
      * Add cond_resched_rcu, used by IPVS to allow rescheduling
        while walking over big hashtables, from Simon Horman.
      
      * Change type of IPVS sysctl_sync_qlen_max sysctl to avoid
        possible overflow, from Zhang Yanfei.
      
      * Use strlcpy instead of strncpy to skip zeroing of already
        initialized area to write the extension names in ebtables,
        from Chen Gang.
      
      * Use already existing per-cpu notrack object from xt_CT,
        from Eric Dumazet.
      
      * Save explicit socket lookup in xt_socket now that we have
        early demux, also from Eric Dumazet.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      143554ac
    • P
      arch, mm: Remove tlb_fast_mode() · 29eb7782
      Peter Zijlstra 提交于
      Since the introduction of preemptible mmu_gather TLB fast mode has been
      broken. TLB fast mode relies on there being absolutely no concurrency;
      it frees pages first and invalidates TLBs later.
      
      However now we can get concurrency and stuff goes *bang*.
      
      This patch removes all tlb_fast_mode() code; it was found the better
      option vs trying to patch the hole by entangling tlb invalidation with
      the scheduler.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tony Luck <tony.luck@intel.com>
      Reported-by: NMax Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      29eb7782
    • L
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 2c95523c
      Linus Torvalds 提交于
      Pull kbuild fixes from Michal Marek:
       "There is one fix for a kbuild regression, plus three kconfig fixes for
        bugs that have alway been there, but are simple enough to be fixed in
        an -rc"
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kconfig/menu.c: fix multiple references to expressions in menu_add_prop()
        mconf: handle keys in empty dialogs
        kbuild: Don't assume dts files live in arch/*/boot/dts
        scripts/config: fix assignment of parameters for short version of --*-after options
      2c95523c
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 6bc19fb8
      David S. Miller 提交于
      Merge 'net' bug fixes into 'net-next' as we have patches
      that will build on top of them.
      
      This merge commit includes a change from Emil Goode
      (emilgoode@gmail.com) that fixes a warning that would
      have been introduced by this merge.  Specifically it
      fixes the pingv6_ops method ipv6_chk_addr() to add a
      "const" to the "struct net_device *dev" argument and
      likewise update the dummy_ipv6_chk_addr() declaration.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6bc19fb8
    • M
      x86/PCI: Map PCI setup data with ioremap() so it can be in highmem · 65694c5a
      Matt Fleming 提交于
      f9a37be0 ("x86: Use PCI setup data") added support for using PCI ROM
      images from setup_data.  This used phys_to_virt(), which is not valid for
      highmem addresses, and can cause a crash when booting a 32-bit kernel via
      the EFI boot stub.
      
      pcibios_add_device() assumes that the physical addresses stored in
      setup_data are accessible via the direct kernel mapping, and that calling
      phys_to_virt() is valid.  This isn't guaranteed to be true on x86 where the
      direct mapping range is much smaller than on x86-64.
      
      Calling phys_to_virt() on a highmem address results in the following:
      
       BUG: unable to handle kernel paging request at 39a3c198
       IP: [<c262be0f>] pcibios_add_device+0x2f/0x90
       ...
       Call Trace:
        [<c2370c73>] pci_device_add+0xe3/0x130
        [<c274640b>] pci_scan_single_device+0x8b/0xb0
        [<c2370d08>] pci_scan_slot+0x48/0x100
        [<c2371904>] pci_scan_child_bus+0x24/0xc0
        [<c262a7b0>] pci_acpi_scan_root+0x2c0/0x490
        [<c23b7203>] acpi_pci_root_add+0x312/0x42f
        ...
      
      The solution is to use ioremap() instead of phys_to_virt() to map the
      setup data into the kernel address space.
      
      [bhelgaas: changelog]
      Tested-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Seth Forshee <seth.forshee@canonical.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: stable@vger.kernel.org	# v3.8+
      65694c5a
  4. 05 6月, 2013 4 次提交
    • J
      USB: serial: fix TIOCMIWAIT return value · f4488035
      Johan Hovold 提交于
      Fix regression introduced by commit 143d9d96 ("USB: serial: add
      tiocmiwait subdriver operation") which made the ioctl operation return
      ENODEV rather than ENOIOCTLCMD when a subdriver TIOCMIWAIT
      implementation is missing.
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f4488035
    • F
      netfilter: nfnetlink_queue: only add CAP_LEN attr when needed · 7f87712c
      Florian Westphal 提交于
      CAP_LEN contains the size of the network packet we're queueing to
      userspace, i.e. normally it is the same as the NFQA_PAYLOAD attribute len.
      
      Include it only in the unlikely case when NFQA_PAYLOAD is truncated due
      to copy_range limitations.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      7f87712c
    • F
      netfilter: nfnetlink_queue: cleanup copy_range usage · 9cefbbc9
      Florian Westphal 提交于
      For every packet queued, we check if configured copy_range
      is 0, and treat that as 'copy entire packet'.
      
      We can move this check to the queue configuration, and can
      set copy_range appropriately.
      
      Also, convert repetitive '0xffff - NLA_HDRLEN' to a macro.
      
      [ queue initialization still used 0xffff, although its harmless
        since the initial setting is overwritten on queue config ]
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      9cefbbc9
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4d3797d7
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix timeouts with direct mode authentication in mac80211, from
          Stanislaw Gruszka.
      
       2) Aggregation sessions can deadlock in ath9k, from Felix Fietkau.
      
       3) Netfilter's xt_addrtype doesn't work with ipv6 due to route lookups
          creating undesirable cache entries, from Florian Westphal.
      
       4) Fix netfilter's ipt_ULOG from generating non-NULL terminated
          strings.
      
       5) Fix netdev transmit queue crashes in mac80211, from Johannes Berg.
      
       6) Fix copy and paste error in 802.11 stack that broke reporting of
          64-bit station tx statistics, from Felix Fietkau.
      
       7) When qlge_probe fails, it leaks the netdev.  Fix from Wei Yongjun.
      
       8) SKB control block (where we store the IP options information,
          amongst other things) must be cleared properly otherwise ICMP
          sending can crash for IP tunnels.  Fix from Eric Dumazet.
      
       9) Verification of Energy Efficient Ether support was coded wrongly,
          the test was inversed.  Fix from Giuseppe CAVALLARO.
      
      10) TCP handles redirects improperly because the wrong flow key is used
          for the route lookup.  From Michal Kubecek.
      
      11) Don't interpret MSG_CMSG_COMPAT from userspace, fix from Andy
          Lutomirski.
      
      12) The new AF_VSOCK was missing from the lockdep string table, fix from
          Federico Vaga.
      
      13) be2net doesn't handle checksumming of IP fragments properly, from
          Somnath Kotur.
      
      14) Fix several bugs in the device address list code that lead to
          crashes and other misbehaviors.  From Jay Vosburgh.
      
      15) Fix ipv6 segmentation handling of fragmented GRE tunnel traffic,
          from Pravin B Shalr.
      
      16) Fix usage of stale policies in IPSEC layer, from Paul Moore.
      
      17) Fix team driver dump of ports when there are a large number of them,
          from Jiri Pirko.
      
      18) Fix softlockups in UDP ipv4 socket lookup causes by and error in the
          hlist_nulls_for_each_entry_rcu() macro.  From Eric Dumazet.
      
      19) Fix several regressions added by the high rate accuracy changes to
          the htb packet scheduler.  From Eric Dumazet.
      
      20) Fix DMA'ing onto the stack in esd_usb2 and peak_usb CAN drivers,
          from Olivier Sobrie and Marc Kleine-Budde.
      
      21) Fix unremovable network devices due to missing route pointer
          installation in the per-device ipv6 address list entries.  From Gao
          feng.
      
      22) Apply the tg3 5719 DMA workaround on 5720 chips as well, otherwise
          we get stalls.  From Nithin Sujir.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (68 commits)
        net_sched: htb: do not mix 1ns and 64ns time units
        net: fix sk_buff head without data area
        tg3: Add read dma workaround for 5720
        net: ethernet: xilinx_emaclite: set protocol selector bits when writing ANAR
        bnx2x: Fix bridged GSO for 57710/57711 chips
        net: fec: add fallback to random MAC address
        bnx2x: fix TCP offload for tunneling ipv4 over ipv6
        ipv6: assign rt6_info to inet6_ifaddr in init_loopback
        net/mlx4_core: Keep VF assigned MAC in the PF admin table
        net/mlx4_en: Handle unassigned VF MAC address correctly
        net/mlx4_core: Return -EPROBE_DEFER when a VF is probed before PF is sufficiently initialized
        net/mlx4_en: Fix adaptive moderation cq update
        net: can: peak_usb: Do not do dma on the stack
        net: can: esd_usb2: Do not do dma on the stack
        net: can: kvaser_usb: fix reception on "USBcan Pro" and "USBcan R" type hardware.
        net_sched: restore "overhead xxx" handling
        net: force a reload of first item in hlist_nulls_for_each_entry_rcu
        hyperv: Fix vlan_proto setting in netvsc_recv_callback()
        team: fix port list dump for big number of ports
        list: introduce list_first_entry_or_null
        ...
      4d3797d7