Commit b3980910 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

f2fs: introduce __f2fs_commit_super



Introduce __f2fs_commit_super to include duplicated codes in
f2fs_commit_super for cleanup.

Signed-off-by: default avatarChao Yu <chao2.yu@samsung.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 55d1cdb2
Loading
Loading
Loading
Loading
+13 −17
Original line number Diff line number Diff line
@@ -1187,14 +1187,13 @@ static int read_raw_super_block(struct super_block *sb,
	return 0;
}

int f2fs_commit_super(struct f2fs_sb_info *sbi, bool recover)
int __f2fs_commit_super(struct f2fs_sb_info *sbi, int block)
{
	struct f2fs_super_block *super = F2FS_RAW_SUPER(sbi);
	struct buffer_head *bh;
	int err;

	/* write back-up superblock first */
	bh = sb_getblk(sbi->sb, sbi->valid_super_block ? 0 : 1);
	bh = sb_getblk(sbi->sb, block);
	if (!bh)
		return -EIO;

@@ -1208,25 +1207,22 @@ int f2fs_commit_super(struct f2fs_sb_info *sbi, bool recover)
	err = __sync_dirty_buffer(bh, WRITE_FLUSH_FUA);
	brelse(bh);

	/* if we are in recovery path, skip writing valid superblock */
	if (recover || err)
	return err;
}

	bh = sb_getblk(sbi->sb, sbi->valid_super_block);
	if (!bh)
		return -EIO;

	/* write current valid superblock */
	lock_buffer(bh);
	memcpy(bh->b_data + F2FS_SUPER_OFFSET, super, sizeof(*super));
	set_buffer_uptodate(bh);
	set_buffer_dirty(bh);
	unlock_buffer(bh);
int f2fs_commit_super(struct f2fs_sb_info *sbi, bool recover)
{
	int err;

	err = __sync_dirty_buffer(bh, WRITE_FLUSH_FUA);
	brelse(bh);
	/* write back-up superblock first */
	err = __f2fs_commit_super(sbi, sbi->valid_super_block ? 0 : 1);

	/* if we are in recovery path, skip writing valid superblock */
	if (recover || err)
		return err;

	/* write current valid superblock */
	return __f2fs_commit_super(sbi, sbi->valid_super_block);
}

static int f2fs_fill_super(struct super_block *sb, void *data, int silent)