1. 12 1月, 2016 1 次提交
  2. 07 1月, 2016 1 次提交
  3. 01 1月, 2016 1 次提交
  4. 23 12月, 2015 1 次提交
  5. 18 12月, 2015 1 次提交
  6. 16 12月, 2015 1 次提交
  7. 05 12月, 2015 2 次提交
  8. 10 10月, 2015 3 次提交
    • C
      f2fs: use atomic64_t for extent cache hit stat · 5b7ee374
      Chao Yu 提交于
      Our hit stat of extent cache will increase all the time until remount,
      and we use atomic_t type for the stat variable, so it may easily incur
      overflow when we query extent cache frequently in a long time running
      fs.
      
      So to avoid that, this patch uses atomic64_t for hit stat variables.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      5b7ee374
    • C
      f2fs: fix incorrect bimodal calculation · 1d7e10d5
      Chao Yu 提交于
      In update_sit_info, we use div_u64 to handle 'u64 divide u64' case, but
      div_u64 can only handle 32-bits divisor, so our divisor with u64 type
      passed to div_u64 will overflow, result in the wrong calculation when
      show debug info of f2fs as below:
      
      BDF: 464, avg. vblocks: 23509
      (BDF should never exceed 100)
      
      So change to use div64_u64 to handle this case correctly.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      1d7e10d5
    • C
      f2fs: fix overflow of size calculation · 9edcdabf
      Chao Yu 提交于
      We have potential overflow issue when calculating size of object, when
      we left shift index with PAGE_CACHE_SHIFT bits, if type of index has only
      32-bits space in 32-bit architecture, left shifting will incur overflow,
      i.e:
      
      pgoff_t index =  0xFFFFFFFF;
      loff_t size = index << PAGE_CACHE_SHIFT;
      size: 0xFFFFF000
      
      So we should cast index with 64-bits type to avoid this issue.
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      9edcdabf
  9. 22 8月, 2015 2 次提交
  10. 05 8月, 2015 2 次提交
  11. 02 6月, 2015 1 次提交
    • A
      f2fs: fix building on 32-bit architectures · 7beb428e
      Arnd Bergmann 提交于
      A bug fix to the debug output extended the type of some local
      variables to 64-bit, which now causes the kernel to fail building
      because of missing 64-bit division functions:
      
      ERROR: "__aeabi_uldivmod" [fs/f2fs/f2fs.ko] undefined!
      
      In the kernel, we have to use div_u64 or do_div to do this,
      in order to annotate that this is an expensive operation.
      
      As the function is only called for debug out, we know this
      is not performance critical, so it is safe to use div_u64.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: d1f85bd38db19 ("f2fs: avoid value overflow in showing current status")
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      7beb428e
  12. 29 5月, 2015 2 次提交
  13. 11 4月, 2015 1 次提交
  14. 04 3月, 2015 1 次提交
  15. 12 2月, 2015 4 次提交
  16. 10 1月, 2015 3 次提交
  17. 09 12月, 2014 2 次提交
  18. 20 11月, 2014 1 次提交
    • C
      f2fs: introduce struct inode_management to wrap inner fields · 67298804
      Chao Yu 提交于
      Now in f2fs, we have three inode cache: ORPHAN_INO, APPEND_INO, UPDATE_INO,
      and we manage fields related to inode cache separately in struct f2fs_sb_info
      for each inode cache type.
      This makes codes a bit messy, so that this patch intorduce a new struct
      inode_management to wrap inner fields as following which make codes more neat.
      
      /* for inner inode cache management */
      struct inode_management {
      	struct radix_tree_root ino_root;	/* ino entry array */
      	spinlock_t ino_lock;			/* for ino entry lock */
      	struct list_head ino_list;		/* inode list head */
      	unsigned long ino_num;			/* number of entries */
      };
      
      struct f2fs_sb_info {
      	...
      	struct inode_management im[MAX_INO_ENTRY];      /* manage inode cache */
      	...
      }
      Signed-off-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      67298804
  19. 07 11月, 2014 1 次提交
  20. 04 11月, 2014 1 次提交
  21. 01 10月, 2014 1 次提交
    • J
      f2fs: check the use of macros on block counts and addresses · 7cd8558b
      Jaegeuk Kim 提交于
      This patch cleans up the existing and new macros for readability.
      
      Rule is like this.
      
               ,-----------------------------------------> MAX_BLKADDR -,
               |  ,------------- TOTAL_BLKS ----------------------------,
               |  |                                                     |
               |  ,- seg0_blkaddr   ,----- sit/nat/ssa/main blkaddress  |
      block    |  | (SEG0_BLKADDR)  | | | |   (e.g., MAIN_BLKADDR)      |
      address  0..x................ a b c d .............................
                  |                                                     |
      global seg# 0...................... m .............................
                  |                       |                             |
                  |                       `------- MAIN_SEGS -----------'
                  `-------------- TOTAL_SEGS ---------------------------'
                                          |                             |
       seg#                               0..........xx..................
      
      = Note =
       o GET_SEGNO_FROM_SEG0 : blk address -> global segno
       o GET_SEGNO           : blk address -> segno
       o START_BLOCK         : segno -> starting block address
      Reviewed-by: NChao Yu <chao2.yu@samsung.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      7cd8558b
  22. 20 8月, 2014 1 次提交
  23. 29 7月, 2014 1 次提交
  24. 12 7月, 2014 1 次提交
  25. 20 3月, 2014 1 次提交
  26. 24 2月, 2014 1 次提交
  27. 17 2月, 2014 1 次提交
  28. 22 1月, 2014 1 次提交