f2fs: flush pending bios right away when error occurs
Subsystems (2)
Jaegeuk Kim
maintainerPATCH 1/1 f2fs: flush pending bios right away when error occurs
Given errors, this patch flushes pending bios as soon as possible.
Signed-off-by Jaegeuk Kim <[email protected]>
--- fs/f2fs/checkpoint.c | 7 +++++++ fs/f2fs/f2fs.h | 7 +------ 2 files changed, 8 insertions(+), 6 deletions(-)
fs/f2fs/checkpoint.c +7 -0
@@ -26,6 +26,13 @@static struct kmem_cache *ino_entry_slab;struct kmem_cache *inode_entry_slab; +void f2fs_stop_checkpoint (struct f2fs_sb_info *sbi) +{ +set_ckpt_flags (sbi->ckpt,CP_ERROR_FLAG ); + sbi->sb->s_flags |=MS_RDONLY ; +f2fs_flush_merged_bios (sbi); +} +/* * We guarantee no failure on the returned page. */
fs/f2fs/f2fs.h +1 -6
@@ -1698,12 +1698,6 @@ static inline bool f2fs_cp_error(struct f2fs_sb_info *sbi)return is_set_ckpt_flags (sbi->ckpt,CP_ERROR_FLAG ); } -static inline void f2fs_stop_checkpoint (struct f2fs_sb_info *sbi) -{ -set_ckpt_flags (sbi->ckpt,CP_ERROR_FLAG ); - sbi->sb->s_flags |=MS_RDONLY ; -} -static inline bool is_dot_dotdot (const struct qstr *str) {if (str->len ==1 && str->name[0 ] =='.' )
@@ -1937,6 +1931,7 @@ void destroy_segment_manager_caches(void);/* * checkpoint.c */ +void f2fs_stop_checkpoint (struct f2fs_sb_info *);struct page *grab_meta_page (struct f2fs_sb_info *,pgoff_t );struct page *get_meta_page (struct f2fs_sb_info *,pgoff_t );struct page *get_tmp_page (struct f2fs_sb_info *,pgoff_t );
Signature · 1 line
2.6.3