1. 28 Dec, 2012 9 commits
  2. 26 Dec, 2012 6 commits
    • Jaegeuk Kim's avatar
      f2fs: do f2fs_balance_fs in front of dir operations · 1efef832
      Jaegeuk Kim authored
      In order to conserve free sections to deal with the worst-case scenarios, f2fs
      should be able to freeze all the directory operations especially when there are
      not enough free sections. The f2fs_balance_fs() is for this use.
      
      When FS utilization becomes almost 100%, directory operations can be failed due
      to -ENOSPC frequently, which produces some dirty node pages occasionally.
      
      Previously, in such a case, f2fs_balance_fs() is not able to be triggered since
      it is triggered only if the directory operation ends up with success.
      
      So, this patch triggers f2fs_balance_fs() at first before handling directory
      operations.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      1efef832
    • Jaegeuk Kim's avatar
      f2fs: should recover orphan and fsync data · 30f0c758
      Jaegeuk Kim authored
      The recovery routine should do all the time regardless of normal umount action.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      30f0c758
    • Jaegeuk Kim's avatar
      f2fs: fix handling errors got by f2fs_write_inode · 398b1ac5
      Jaegeuk Kim authored
      Ruslan reported that f2fs hangs with an infinite loop in f2fs_sync_file():
      
      	while (sync_node_pages(sbi, inode->i_ino, &wbc) == 0)
      		f2fs_write_inode(inode, NULL);
      
      The reason was revealed that the cold flag is not set even thought this inode is
      a normal file. Therefore, sync_node_pages() skips to write node blocks since it
      only writes cold node blocks.
      
      The cold flag is stored to the node_footer in node block, and whenever a new
      node page is allocated, it is set according to its file type, file or directory.
      
      But, after sudden-power-off, when recovering the inode page, f2fs doesn't recover
      its cold flag.
      
      So, let's assign the cold flag in more right places.
      
      One more thing:
      If f2fs_write_inode() returns an error due to whatever situations, there would
      be no dirty node pages so that sync_node_pages() returns zero.
      (i.e., zero means nothing was written.)
      Reported-by: default avatarRuslan N. Marchenko <me@ruff.mobi>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      398b1ac5
    • Namjae Jeon's avatar
      f2fs: fix up f2fs_get_parent issue to retrieve correct parent inode number · 38e0abdc
      Namjae Jeon authored
      Test Case:
      [NFS Client]
      ls -lR .
      
      [NFS Server]
      while [ 1 ]
      do
      echo 3 > /proc/sys/vm/drop_caches
      done
      
      Error on NFS Client: "No such file or directory"
      
      When cache is dropped at the server, it results in lookup failure at the
      NFS client due to non-connection with the parent. The default path is it
      initiates a lookup by calculating the hash value for the name, even though
      the hash values stored on the disk for "." and ".." is maintained as zero,
      which results in failure from find_in_block due to not matching HASH values.
      Fix up, by using the correct hashing values for these entries.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      38e0abdc
    • Jaegeuk Kim's avatar
      f2fs: fix wrong calculation on f_files in statfs · 1362b5e3
      Jaegeuk Kim authored
      In f2fs_statfs(), f_files should be the total number of available inodes
      instead of the currently allocated inodes.
      So, this patch should resolve the reported bug below.
      
      Note that, showing 10% usage is not a bug, since f2fs reveals whole volume size
      as much as possible and shows the space overhead as *used*.
      This policy is fair enough with respect to other file systems.
      
      <Reported Bug>
      (loop0 is backed by 1GiB file)
      
      $ mkfs.f2fs /dev/loop0
      
      F2FS-tools: Ver: 1.1.0 (2012-12-11)
      Info: sector size = 512
      Info: total sectors = 2097152 (in 512bytes)
      Info: zone aligned segment0 blkaddr: 512
      Info: format successful
      
      $ mount /dev/loop0 mnt/
      
      $ df mnt/
      Filesystem     1K-blocks  Used Available Use% Mounted on
      /dev/loop0       1046528 98312    929784  10%
      /home/zeta/linux-devel/mtd-bench/mnt
      
      $ df mnt/ -i
      Filesystem     Inodes   IUsed  IFree IUse% Mounted on
      /dev/loop0       1 -465918 465919     - /home/zeta/linux-devel/mtd-bench/mnt
      
      Notice IUsed is negative. Also, 10% usage on a fresh f2fs seems too
      much to be correct.
      Reported-and-Tested-by: default avatarEzequiel Garcia <elezegarcia@gmail.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      1362b5e3
    • Jaegeuk Kim's avatar
      f2fs: remove set_page_dirty for atomic f2fs_end_io_write · dfb7c0ce
      Jaegeuk Kim authored
      We should guarantee not to do *scheduling while atomic*.
      I found, in atomic f2fs_end_io_write(), there is a set_page_dirty() call
      to deal with IO errors.
      
      But, set_page_dirty() calls:
       -> f2fs_set_data_page_dirty()
         -> set_dirty_dir_page()
            -> cond_resched() which results in scheduling.
      
      In order to avoid this, I'd like to remove simply set_page_dirty(),
      since the page is already marked as ERROR and f2fs will be operated
      as the read-only mode as well.
      So, there is no recovery issue with this.
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
      dfb7c0ce
  3. 23 Dec, 2012 3 commits
  4. 22 Dec, 2012 9 commits
    • Bill Pemberton's avatar
      i2c: remove __dev* attributes from subsystem · 0b255e92
      Bill Pemberton authored
      CONFIG_HOTPLUG is going away as an option.  As result the __dev*
      markings will be going away.
      
      Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
      and __devexit.
      Signed-off-by: default avatarBill Pemberton <wfp5p@virginia.edu>
      Acked-by: Peter Korsgaard <peter.korsgaard@barco.com> (for ocores and mux-gpio)
      Acked-by: Havard Skinnemoen <hskinnemoen@gmail.com> (for i2c-gpio)
      Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn> (for puf3)
      Acked-by: Barry Song <baohua.song@csr.com> (for sirf)
      Reviewed-by: default avatarJean Delvare <khali@linux-fr.org>
      [wsa: Fixed "foo* bar" flaws while we are here]
      Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
      0b255e92
    • Linus Torvalds's avatar
      Linux 3.8-rc1 · a49f0d1e
      Linus Torvalds authored
      a49f0d1e
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 4fe19a13
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
       "This includes some fixes and code improvements (like
        clk_prepare_enable and clk_disable_unprepare), conversion from the
        omap_wdt and twl4030_wdt drivers to the watchdog framework, addition
        of the SB8x0 chipset support and the DA9055 Watchdog driver and some
        OF support for the davinci_wdt driver."
      
      * git://www.linux-watchdog.org/linux-watchdog: (22 commits)
        watchdog: mei: avoid oops in watchdog unregister code path
        watchdog: Orion: Fix possible null-deference in orion_wdt_probe
        watchdog: sp5100_tco: Add SB8x0 chipset support
        watchdog: davinci_wdt: add OF support
        watchdog: da9052: Fix invalid free of devm_ allocated data
        watchdog: twl4030_wdt: Change TWL4030_MODULE_PM_RECEIVER to TWL_MODULE_PM_RECEIVER
        watchdog: remove depends on CONFIG_EXPERIMENTAL
        watchdog: Convert dev_printk(KERN_<LEVEL> to dev_<level>(
        watchdog: DA9055 Watchdog driver
        watchdog: omap_wdt: eliminate goto
        watchdog: omap_wdt: delete redundant platform_set_drvdata() calls
        watchdog: omap_wdt: convert to devm_ functions
        watchdog: omap_wdt: convert to new watchdog core
        watchdog: WatchDog Timer Driver Core: fix comment
        watchdog: s3c2410_wdt: use clk_prepare_enable and clk_disable_unprepare
        watchdog: imx2_wdt: Select the driver via ARCH_MXC
        watchdog: cpu5wdt.c: add missing del_timer call
        watchdog: hpwdt.c: Increase version string
        watchdog: Convert twl4030_wdt to watchdog core
        davinci_wdt: preparation for switch to common clock framework
        ...
      4fe19a13
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 769cb858
      Linus Torvalds authored
      Pull CIFS fixes from Steve French:
       "Misc small cifs fixes"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: eliminate cifsERROR variable
        cifs: don't compare uniqueids in cifs_prime_dcache unless server inode numbers are in use
        cifs: fix double-free of "string" in cifs_parse_mount_options
      769cb858
    • Linus Torvalds's avatar
      Merge tag 'dm-3.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · b49249d1
      Linus Torvalds authored
      Pull dm update from Alasdair G Kergon:
       "Miscellaneous device-mapper fixes, cleanups and performance
        improvements.
      
        Of particular note:
         - Disable broken WRITE SAME support in all targets except linear and
           striped.  Use it when kcopyd is zeroing blocks.
         - Remove several mempools from targets by moving the data into the
           bio's new front_pad area(which dm calls 'per_bio_data').
         - Fix a race in thin provisioning if discards are misused.
         - Prevent userspace from interfering with the ioctl parameters and
           use kmalloc for the data buffer if it's small instead of vmalloc.
         - Throttle some annoying error messages when I/O fails."
      
      * tag 'dm-3.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm: (36 commits)
        dm stripe: add WRITE SAME support
        dm: remove map_info
        dm snapshot: do not use map_context
        dm thin: dont use map_context
        dm raid1: dont use map_context
        dm flakey: dont use map_context
        dm raid1: rename read_record to bio_record
        dm: move target request nr to dm_target_io
        dm snapshot: use per_bio_data
        dm verity: use per_bio_data
        dm raid1: use per_bio_data
        dm: introduce per_bio_data
        dm kcopyd: add WRITE SAME support to dm_kcopyd_zero
        dm linear: add WRITE SAME support
        dm: add WRITE SAME support
        dm: prepare to support WRITE SAME
        dm ioctl: use kmalloc if possible
        dm ioctl: remove PF_MEMALLOC
        dm persistent data: improve improve space map block alloc failure message
        dm thin: use DMERR_LIMIT for errors
        ...
      b49249d1
    • J. Bruce Fields's avatar
      Revert "nfsd: warn on odd reply state in nfsd_vfs_read" · 10532b56
      J. Bruce Fields authored
      This reverts commit 79f77bf9.
      
      This is obviously wrong, and I have no idea how I missed seeing the
      warning in testing: I must just not have looked at the right logs.  The
      caller bumps rq_resused/rq_next_page, so it will always be hit on a
      large enough read.
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      10532b56
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 184e2516
      Linus Torvalds authored
      Pull more infiniband changes from Roland Dreier:
       "Second batch of InfiniBand/RDMA changes for 3.8:
         - cxgb4 changes to fix lookup engine hash collisions
         - mlx4 changes to make flow steering usable
         - fix to IPoIB to avoid pinning dst reference for too long"
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        RDMA/cxgb4: Fix bug for active and passive LE hash collision path
        RDMA/cxgb4: Fix LE hash collision bug for passive open connection
        RDMA/cxgb4: Fix LE hash collision bug for active open connection
        mlx4_core: Allow choosing flow steering mode
        mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV
        mlx4_core: Fix error flow in the flow steering wrapper
        mlx4_core: Add QPN enforcement for flow steering rules set by VFs
        cxgb4: Add LE hash collision bug fix path in LLD driver
        cxgb4: Add T4 filter support
        IPoIB: Call skb_dst_drop() once skb is enqueued for sending
      184e2516
    • Linus Torvalds's avatar
      Merge tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 0264405b
      Linus Torvalds authored
      Pull asm-generic cleanup from Arnd Bergmann:
       "These are a few cleanups for asm-generic:
      
         - a set of patches from Lars-Peter Clausen to generalize asm/mmu.h
           and use it in the architectures that don't need any special
           handling.
         - A patch from Will Deacon to remove the {read,write}s{b,w,l} as
           discussed during the arm64 review
         - A patch from James Hogan that helps with the meta architecture
           series."
      
      * tag 'asm-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        xtensa: Use generic asm/mmu.h for nommu
        h8300: Use generic asm/mmu.h
        c6x: Use generic asm/mmu.h
        asm-generic/mmu.h: Add support for FDPIC
        asm-generic/mmu.h: Remove unused vmlist field from mm_context_t
        asm-generic: io: remove {read,write} string functions
        asm-generic/io.h: remove asm/cacheflush.h include
      0264405b
    • Kukjin Kim's avatar
      ARM: dts: fix duplicated build target and alphabetical sort out for exynos · 7e65df38
      Kukjin Kim authored
      Commit db5b0ae0 ("Merge tag 'dt' of git://git.kernel.org/.../arm-soc")
      causes a duplicated build target.  This patch fixes it and sorts out the
      build target alphabetically so that we can recognize something wrong
      easily.
      
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7e65df38
  5. 21 Dec, 2012 13 commits