In this patch we use below inner macro and function to clean up codes.
1. ADDRS_PER_PAGE
2. SM_I
3. f2fs_readonly
Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
                        }
                }
 
-               end_offset = IS_INODE(dn.node_page) ?
-                       ADDRS_PER_INODE(F2FS_I(inode)) : ADDRS_PER_BLOCK;
+               end_offset = ADDRS_PER_PAGE(dn.node_page, F2FS_I(inode));
 
                /* find data/hole in dnode block */
                for (; dn.ofs_in_node < end_offset;
 
                return -ENOMEM;
        spin_lock_init(&fcc->issue_lock);
        init_waitqueue_head(&fcc->flush_wait_queue);
-       sbi->sm_info->cmd_control_info = fcc;
+       SM_I(sbi)->cmd_control_info = fcc;
        fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
                                "f2fs_flush-%u:%u", MAJOR(dev), MINOR(dev));
        if (IS_ERR(fcc->f2fs_issue_flush)) {
                err = PTR_ERR(fcc->f2fs_issue_flush);
                kfree(fcc);
-               sbi->sm_info->cmd_control_info = NULL;
+               SM_I(sbi)->cmd_control_info = NULL;
                return err;
        }
 
 
 void destroy_flush_cmd_control(struct f2fs_sb_info *sbi)
 {
-       struct flush_cmd_control *fcc =
-                               sbi->sm_info->cmd_control_info;
+       struct flush_cmd_control *fcc = SM_I(sbi)->cmd_control_info;
 
        if (fcc && fcc->f2fs_issue_flush)
                kthread_stop(fcc->f2fs_issue_flush);
        kfree(fcc);
-       sbi->sm_info->cmd_control_info = NULL;
+       SM_I(sbi)->cmd_control_info = NULL;
 }
 
 static void __locate_dirty_segment(struct f2fs_sb_info *sbi, unsigned int segno,
 
         * Previous and new state of filesystem is RO,
         * so skip checking GC and FLUSH_MERGE conditions.
         */
-       if ((sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY))
+       if (f2fs_readonly(sb) && (*flags & MS_RDONLY))
                goto skip;
 
        /*
         */
        if ((*flags & MS_RDONLY) || !test_opt(sbi, FLUSH_MERGE)) {
                destroy_flush_cmd_control(sbi);
-       } else if (test_opt(sbi, FLUSH_MERGE) &&
-                                       !sbi->sm_info->cmd_control_info) {
+       } else if (test_opt(sbi, FLUSH_MERGE) && !SM_I(sbi)->cmd_control_info) {
                err = create_flush_cmd_control(sbi);
                if (err)
                        goto restore_gc;
         * If filesystem is not mounted as read-only then
         * do start the gc_thread.
         */
-       if (!(sb->s_flags & MS_RDONLY)) {
+       if (!f2fs_readonly(sb)) {
                /* After POR, we can run background GC thread.*/
                err = start_gc_thread(sbi);
                if (err)