Loading fs/f2fs/f2fs.h +1 −1 Original line number Diff line number Diff line Loading @@ -1697,7 +1697,7 @@ void destroy_node_manager_caches(void); * segment.c */ void register_inmem_page(struct inode *, struct page *); void commit_inmem_pages(struct inode *, bool); int commit_inmem_pages(struct inode *, bool); void f2fs_balance_fs(struct f2fs_sb_info *); void f2fs_balance_fs_bg(struct f2fs_sb_info *); int f2fs_issue_flush(struct f2fs_sb_info *); Loading fs/f2fs/file.c +5 −2 Original line number Diff line number Diff line Loading @@ -1358,10 +1358,13 @@ static int f2fs_ioc_commit_atomic_write(struct file *filp) if (f2fs_is_atomic_file(inode)) { clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); commit_inmem_pages(inode, false); ret = commit_inmem_pages(inode, false); if (ret) goto err_out; } ret = f2fs_sync_file(filp, 0, LLONG_MAX, 0); err_out: mnt_drop_write_file(filp); return ret; } Loading Loading @@ -1418,7 +1421,7 @@ static int f2fs_ioc_abort_volatile_write(struct file *filp) if (f2fs_is_atomic_file(inode)) { clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); commit_inmem_pages(inode, false); commit_inmem_pages(inode, true); } if (f2fs_is_volatile_file(inode)) Loading fs/f2fs/segment.c +8 −2 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ void register_inmem_page(struct inode *inode, struct page *page) trace_f2fs_register_inmem_page(page, INMEM); } void commit_inmem_pages(struct inode *inode, bool abort) int commit_inmem_pages(struct inode *inode, bool abort) { struct f2fs_sb_info *sbi = F2FS_I_SB(inode); struct f2fs_inode_info *fi = F2FS_I(inode); Loading @@ -239,6 +239,7 @@ void commit_inmem_pages(struct inode *inode, bool abort) .rw = WRITE_SYNC | REQ_PRIO, .encrypted_page = NULL, }; int err = 0; /* * The abort is true only when f2fs_evict_inode is called. Loading @@ -263,8 +264,12 @@ void commit_inmem_pages(struct inode *inode, bool abort) inode_dec_dirty_pages(inode); trace_f2fs_commit_inmem_page(cur->page, INMEM); fio.page = cur->page; do_write_data_page(&fio); err = do_write_data_page(&fio); submit_bio = true; if (err) { unlock_page(cur->page); break; } } f2fs_put_page(cur->page, 1); } else { Loading @@ -283,6 +288,7 @@ void commit_inmem_pages(struct inode *inode, bool abort) if (submit_bio) f2fs_submit_merged_bio(sbi, DATA, WRITE); } return err; } /* Loading Loading
fs/f2fs/f2fs.h +1 −1 Original line number Diff line number Diff line Loading @@ -1697,7 +1697,7 @@ void destroy_node_manager_caches(void); * segment.c */ void register_inmem_page(struct inode *, struct page *); void commit_inmem_pages(struct inode *, bool); int commit_inmem_pages(struct inode *, bool); void f2fs_balance_fs(struct f2fs_sb_info *); void f2fs_balance_fs_bg(struct f2fs_sb_info *); int f2fs_issue_flush(struct f2fs_sb_info *); Loading
fs/f2fs/file.c +5 −2 Original line number Diff line number Diff line Loading @@ -1358,10 +1358,13 @@ static int f2fs_ioc_commit_atomic_write(struct file *filp) if (f2fs_is_atomic_file(inode)) { clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); commit_inmem_pages(inode, false); ret = commit_inmem_pages(inode, false); if (ret) goto err_out; } ret = f2fs_sync_file(filp, 0, LLONG_MAX, 0); err_out: mnt_drop_write_file(filp); return ret; } Loading Loading @@ -1418,7 +1421,7 @@ static int f2fs_ioc_abort_volatile_write(struct file *filp) if (f2fs_is_atomic_file(inode)) { clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); commit_inmem_pages(inode, false); commit_inmem_pages(inode, true); } if (f2fs_is_volatile_file(inode)) Loading
fs/f2fs/segment.c +8 −2 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ void register_inmem_page(struct inode *inode, struct page *page) trace_f2fs_register_inmem_page(page, INMEM); } void commit_inmem_pages(struct inode *inode, bool abort) int commit_inmem_pages(struct inode *inode, bool abort) { struct f2fs_sb_info *sbi = F2FS_I_SB(inode); struct f2fs_inode_info *fi = F2FS_I(inode); Loading @@ -239,6 +239,7 @@ void commit_inmem_pages(struct inode *inode, bool abort) .rw = WRITE_SYNC | REQ_PRIO, .encrypted_page = NULL, }; int err = 0; /* * The abort is true only when f2fs_evict_inode is called. Loading @@ -263,8 +264,12 @@ void commit_inmem_pages(struct inode *inode, bool abort) inode_dec_dirty_pages(inode); trace_f2fs_commit_inmem_page(cur->page, INMEM); fio.page = cur->page; do_write_data_page(&fio); err = do_write_data_page(&fio); submit_bio = true; if (err) { unlock_page(cur->page); break; } } f2fs_put_page(cur->page, 1); } else { Loading @@ -283,6 +288,7 @@ void commit_inmem_pages(struct inode *inode, bool abort) if (submit_bio) f2fs_submit_merged_bio(sbi, DATA, WRITE); } return err; } /* Loading