f2fs: optimize the init_dirty_segmap function
authorNamjae Jeon <namjae.jeon@samsung.com>
Sun, 16 Jun 2013 00:49:11 +0000 (09:49 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 1 Jul 2013 23:48:14 +0000 (08:48 +0900)
Optimize the while loop condition

Since this condition will always be true and while loop will
be terminated by the following condition in code:

if (segno >= TOTAL_SEGS(sbi))
    break;
Hence we can replace the while loop condition with while(1)
instead of always checking for segno to be less than Total segs.

Also we do not need to use TOTAL_SEGS() everytime. We can store
this value in a local variable since this value is constant.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Pankaj Kumar <pankaj.km@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/segment.c

index 0e1a60a4eb3fd0efa691d95c87fb77a9160455fc..3ac4d29f0cd4e27d666b0da8da54ca4dc78c617a 100644 (file)
@@ -1582,13 +1582,13 @@ static void init_dirty_segmap(struct f2fs_sb_info *sbi)
 {
        struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
        struct free_segmap_info *free_i = FREE_I(sbi);
-       unsigned int segno = 0, offset = 0;
+       unsigned int segno = 0, offset = 0, total_segs = TOTAL_SEGS(sbi);
        unsigned short valid_blocks;
 
-       while (segno < TOTAL_SEGS(sbi)) {
+       while (1) {
                /* find dirty segment based on free segmap */
-               segno = find_next_inuse(free_i, TOTAL_SEGS(sbi), offset);
-               if (segno >= TOTAL_SEGS(sbi))
+               segno = find_next_inuse(free_i, total_segs, offset);
+               if (segno >= total_segs)
                        break;
                offset = segno + 1;
                valid_blocks = get_valid_blocks(sbi, segno, 0);