Loading fs/f2fs/super.c +13 −17 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) Loading Loading
fs/f2fs/super.c +13 −17 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) Loading