1. 10 7月, 2014 9 次提交
    • C
      f2fs: reduce region of f2fs_lock_op covered for better concurrency · 1256010a
      Chao Yu 提交于
      In our rename process, region of f2fs_lock_op covered is too big as some of the
      code like f2fs_empty_dir/f2fs_find_entry are not needed to protect by this lock.
      
      So in the extreme case like doing checkpoint when we rename old inode to exist
      inode in a large directory could cause lower concurrency.
      
      Let's reduce the region of f2fs_lock_op to fix this.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      1256010a
    • F
      f2fs: replace count*size kzalloc by kcalloc · b434babf
      Fabian Frederick 提交于
      kcalloc manages count*sizeof overflow.
      
      Cc: Jaegeuk Kim <jaegeuk.kim@samsung.com>
      Cc: linux-f2fs-devel@lists.sourceforge.net
      Signed-off-by: NFabian Frederick <fabf@skynet.be>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      b434babf
    • C
      f2fs: refactor flush_nat_entries codes for reducing NAT writes · aec71382
      Chao Yu 提交于
      Although building NAT journal in cursum reduce the read/write work for NAT
      block, but previous design leave us lower performance when write checkpoint
      frequently for these cases:
      1. if journal in cursum has already full, it's a bit of waste that we flush all
         nat entries to page for persistence, but not to cache any entries.
      2. if journal in cursum is not full, we fill nat entries to journal util
         journal is full, then flush the left dirty entries to disk without merge
         journaled entries, so these journaled entries may be flushed to disk at next
         checkpoint but lost chance to flushed last time.
      
      In this patch we merge dirty entries located in same NAT block to nat entry set,
      and linked all set to list, sorted ascending order by entries' count of set.
      Later we flush entries in sparse set into journal as many as we can, and then
      flush merged entries to disk. In this way we can not only gain in performance,
      but also save lifetime of flash device.
      
      In my testing environment, it shows this patch can help to reduce NAT block
      writes obviously. In hard disk test case: cost time of fsstress is stablely
      reduced by about 5%.
      
      1. virtual machine + hard disk:
      fsstress -p 20 -n 200 -l 5
      		node num	cp count	nodes/cp
      based		4599.6		1803.0		2.551
      patched		2714.6		1829.6		1.483
      
      2. virtual machine + 32g micro SD card:
      fsstress -p 20 -n 200 -l 1 -w -f chown=0 -f creat=4 -f dwrite=0
      -f fdatasync=4 -f fsync=4 -f link=0 -f mkdir=4 -f mknod=4 -f rename=5
      -f rmdir=5 -f symlink=0 -f truncate=4 -f unlink=5 -f write=0 -S
      
      		node num	cp count	nodes/cp
      based		84.5		43.7		1.933
      patched		49.2		40.0		1.23
      
      Our latency of merging op shows not bad when handling extreme case like:
      merging a great number of dirty nats:
      latency(ns)	dirty nat count
      3089219		24922
      5129423		27422
      4000250		24523
      
      change log from v1:
       o fix wrong logic in add_nat_entry when grab a new nat entry set.
       o swith to create slab cache in create_node_manager_caches.
       o use GFP_ATOMIC instead of GFP_NOFS to avoid potential long latency.
      
      change log from v2:
       o make comment position more appropriate suggested by Jaegeuk Kim.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      aec71382
    • J
      f2fs: clean up an unused parameter and assignment · a014e037
      Jaegeuk Kim 提交于
      This patch cleans up simple unnecessary codes.
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      a014e037
    • J
      f2fs: introduce f2fs_do_tmpfile for code consistency · b97a9b5d
      Jaegeuk Kim 提交于
      This patch adds f2fs_do_tmpfile to eliminate the redundant init_inode_metadata
      flow.
      Throught this, we can provide the consistent lock usage, e.g., fi->i_sem,  and
      this will enable better debugging stuffs.
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      b97a9b5d
    • C
      f2fs: support ->tmpfile() · 50732df0
      Chao Yu 提交于
      Add function f2fs_tmpfile() to support O_TMPFILE file creation, and modify logic
      of init_inode_metadata to enable linkat temp file.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      50732df0
    • C
      f2fs: avoid to truncate non-updated page partially · ca0a81b3
      Chao Yu 提交于
      After we call find_data_page in truncate_partial_data_page, we could not
      guarantee this page is updated or not as error may occurred in lower layer.
      
      We'd better check status of the page to avoid this no updated page be
      writebacked to device.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      ca0a81b3
    • C
      f2fs: avoid unneeded SetPageUptodate in f2fs_write_end · 5576cd6c
      Chao Yu 提交于
      We have already set page update in ->write_begin, so we should remove redundant
      SetPageUptodate in ->write_end.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      5576cd6c
    • L
      Merge tag 'f2fs-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 191d385f
      Linus Torvalds 提交于
      Pull f2fs bugfixes from Jaegeuk Kim:
       "This includes a couple of bug fixes found by xfstests.  In addition,
        one critical bug was reported by Brian Chadwick, which is falling into
        the infinite loop in balance_dirty_pages.  And it turned out due to
        the IO merging policy in f2fs, which was newly merged in 3.16.
      
         - fix normal and recovery path for fallocated regions
         - fix error case mishandling
         - recover renamed fsync inodes correctly
         - fix to get out of infinite loops in balance_dirty_pages
         - fix kernel NULL pointer error"
      
      * tag 'f2fs-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: avoid to access NULL pointer in issue_flush_thread
        f2fs: check bdi->dirty_exceeded when trying to skip data writes
        f2fs: do checkpoint for the renamed inode
        f2fs: release new entry page correctly in error path of f2fs_rename
        f2fs: fix error path in init_inode_metadata
        f2fs: check lower bound nid value in check_nid_range
        f2fs: remove unused variables in f2fs_sm_info
        f2fs: fix not to allocate unnecessary blocks during fallocate
        f2fs: recover fallocated data and its i_size together
        f2fs: fix to report newly allocate region as extent
      191d385f
  2. 09 7月, 2014 8 次提交
  3. 08 7月, 2014 4 次提交
  4. 07 7月, 2014 6 次提交
    • G
      hwmon: (emc2103) Clamp limits instead of bailing out · f6c2dd20
      Guenter Roeck 提交于
      It is customary to clamp limits instead of bailing out with an error
      if a configured limit is out of the range supported by the driver.
      This simplifies limit configuration, since the user will not typically
      know chip and/or driver specific limits.
      Reviewed-by: NJean Delvare <jdelvare@suse.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      f6c2dd20
    • W
      HID: use multi input quirk for 22b9:2968 · 3179e8e6
      Wen-chien Jesse Sung 提交于
      This device generates ABS_Z and ABS_RX events instead of ABS_X and
      ABS_Y.
      Signed-off-by: NWen-chien Jesse Sung <jesse.sung@canonical.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      3179e8e6
    • G
      hwmon: (adm1031) Fix writes to limit registers · 145e74a4
      Guenter Roeck 提交于
      Upper limit for write operations to temperature limit registers
      was clamped to a fractional value. However, limit registers do
      not support fractional values. As a result, upper limits of 127.5
      degrees C or higher resulted in a rounded limit of 128 degrees C.
      Since limit registers are signed, this was stored as -128 degrees C.
      Clamp limits to (-55, +127) degrees C to solve the problem.
      
      Value on writes to auto_temp[12]_min and auto_temp[12]_max were not
      clamped at all, but masked. As a result, out-of-range writes resulted
      in a more or less arbitrary limit. Clamp those attributes to (0, 127)
      degrees C for more predictable results.
      
      Cc: Axel Lin <axel.lin@ingics.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NJean Delvare <jdelvare@suse.de>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      145e74a4
    • L
      Linux 3.16-rc4 · cd3de83f
      Linus Torvalds 提交于
      cd3de83f
    • L
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · 100193f5
      Linus Torvalds 提交于
      Pull devicetree bugfix from Grant Likely:
       "Important bug fix for parsing 64-bit addresses on 32-bit platforms.
        Without this patch the kernel will try to use memory ranges that
        cannot be reached"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        of: Check for phys_addr_t overflows in early_init_dt_add_memory_arch
      100193f5
    • L
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8addf0c7
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is a set of 13 fixes, a MAINTAINERS update and a sparse update.
        The fixes are mostly correct value initialisations, avoiding NULL
        derefs and some uninitialised pointer avoidance.
      
        All the patches have been incubated in -next for a few days.  The
        final patch (use the scsi data buffer length to extract transfer size)
        has been rebased to add a cc to stable, but only the commit message
        has changed"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] use the scsi data buffer length to extract transfer size
        virtio-scsi: fix various bad behavior on aborted requests
        virtio-scsi: avoid cancelling uninitialized work items
        ibmvscsi: Add memory barriers for send / receive
        ibmvscsi: Abort init sequence during error recovery
        qla2xxx: Fix sparse warning in qla_target.c.
        bnx2fc: Improve stats update mechanism
        bnx2fc: do not scan uninitialized lists in case of error.
        fc: ensure scan_work isn't active when freeing fc_rport
        pm8001: Fix potential null pointer dereference and memory leak.
        MAINTAINERS: Update LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) maintainers Email IDs
        be2iscsi: remove potential junk pointer free
        be2iscsi: add an missing goto in error path
        scsi_error: set DID_TIME_OUT correctly
        scsi_error: fix invalid setting of host byte
      8addf0c7
  5. 06 7月, 2014 8 次提交
  6. 05 7月, 2014 5 次提交
    • S
      MAINTAINERS: Add few more Keystone drivers · bc6aa566
      Santosh Shilimkar 提交于
      Update MAINTAINERS file for recently added reset controller, AEMIF
      and clocksource driver for Keystone SOCs.
      
      The EMIF memory controller driver is also added along with AEMIF.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Kevin Hilman <khilman@linaro.org>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      bc6aa566
    • S
      MAINTAINERS: merge MXS entry into IMX one · ce515a6b
      Shawn Guo 提交于
      The mach-mxs platform is actually co-maintained by myself and
      pengutronix folks.  Also it's hosted in the same kernel tree as IMX.
      So let's merge the entry into IMX one.
      Signed-off-by: NShawn Guo <shawn.guo@freescale.com>
      Acked-by: NSascha Hauer <s.hauer@pengutronix.de>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      ce515a6b
    • O
      Merge tag 'mvebu-fixes-3.16-2' of git://git.infradead.org/linux-mvebu into fixes · 25d11631
      Olof Johansson 提交于
      mvebu fixes for v3.16 (round #2)
      
       - mvebu
          - Fix PCIe deadlock now that SMP is enabled
          - Fix cpuidle for big-endian systems
      
      * tag 'mvebu-fixes-3.16-2' of git://git.infradead.org/linux-mvebu:
        ARM: mvebu: fix cpuidle implementation to work on big-endian systems
        ARM: mvebu: update L2/PCIe deadlock workaround after L2CC cleanup
        ARM: mvebu: move Armada 375 external abort logic as a quirk
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      25d11631
    • M
      ARM: sunxi: Reintroduce the restart code for A10/A20 SoCs · d767af5e
      Maxime Ripard 提交于
      This partly reverts commits 55360050 (ARM: sunxi: Remove reset code from
      the platform) and 5e669ec5 (ARM: sunxi: Remove init_machine callback) for
      the sun4i, sun5i and sun7i families.
      
      This is needed because the watchdog counterpart of these commits was dropped,
      and didn't make it into 3.16. In order to still be able to reboot the board, we
      need to reintroduce that code. Of course, the long term view is still to get
      rid of that code in mach-sunxi.
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      d767af5e
    • O
      Merge tag 'omap-for-v3.16/fixes-against-rc1' of... · 5acd78c5
      Olof Johansson 提交于
      Merge tag 'omap-for-v3.16/fixes-against-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Merge OMAP fixes from Tony Lindgren:
      
      Fixes for omaps for issues discovered during the merge window and
      enabling of a few features that had to wait for the driver
      dependencies to clear.
      
      The fixes included are:
      
      - Fix am43xx hard reset flags
      - Fix SoC detection for DRA722
      - Fix CPU OPP table for omap5
      - Fix legacy mux parser bug if requested muxname is a prefix of
        multiple mux entries
      - Fix qspi interrupt binding that relies on the irq crossbar
        that has not yet been enabled
      - Add missing phy_sel for am43x-epos-evm
      - Drop unused gic_init_irq() that is no longer needed
      
      And the enabling of features that had driver dependencies are:
      
      - Change dra7 to use Audio Tracking Logic clock instead of a fixed
        clock now that the clock driver for it has been merged
      
      - Enable off idle configuration for selected omaps as all the kernel
        dependencies for device tree based booting are finally merged as
        this is needed to get the automated PM tests working finally with
        device tree based booting
      
      - Add hwmod entry for ocp2scp3 for omap5 to get sata working as
        all the driver dependencies are now in the kernel and this patch
        fell through the cracks during the merge window
      
      * tag 'omap-for-v3.16/fixes-against-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: dts: dra7-evm: remove interrupt binding
        ARM: OMAP2+: Fix parser-bug in platform muxing code
        ARM: DTS: dra7/dra7xx-clocks: ATL related changes
        ARM: OMAP2+: drop unused function
        ARM: dts: am43x-epos-evm: Add Missing cpsw-phy-sel for am43x-epos-evm
        ARM: dts: omap5: Update CPU OPP table as per final production Manual
        ARM: DRA722: add detection of SoC information
        ARM: dts: Enable twl4030 off-idle configuration for selected omaps
        ARM: OMAP5: hwmod: Add ocp2scp3 and sata hwmods
        ARM: OMAP2+: hwmod: Change hardreset soc_ops for AM43XX
      5acd78c5