aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/f2fs/dir.c7
-rw-r--r--fs/f2fs/inline.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index 37f9c7f55605..c0c933ad43c8 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -705,6 +705,8 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
705 struct f2fs_dentry_block *dentry_blk; 705 struct f2fs_dentry_block *dentry_blk;
706 unsigned int bit_pos; 706 unsigned int bit_pos;
707 int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len)); 707 int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len));
708 struct address_space *mapping = page_mapping(page);
709 unsigned long flags;
708 int i; 710 int i;
709 711
710 f2fs_update_time(F2FS_I_SB(dir), REQ_TIME); 712 f2fs_update_time(F2FS_I_SB(dir), REQ_TIME);
@@ -735,6 +737,11 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
735 737
736 if (bit_pos == NR_DENTRY_IN_BLOCK && 738 if (bit_pos == NR_DENTRY_IN_BLOCK &&
737 !truncate_hole(dir, page->index, page->index + 1)) { 739 !truncate_hole(dir, page->index, page->index + 1)) {
740 spin_lock_irqsave(&mapping->tree_lock, flags);
741 radix_tree_tag_clear(&mapping->page_tree, page_index(page),
742 PAGECACHE_TAG_DIRTY);
743 spin_unlock_irqrestore(&mapping->tree_lock, flags);
744
738 clear_page_dirty_for_io(page); 745 clear_page_dirty_for_io(page);
739 ClearPagePrivate(page); 746 ClearPagePrivate(page);
740 ClearPageUptodate(page); 747 ClearPageUptodate(page);
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index c133a4fdecf6..8322e4e7bb3f 100644
--- a/fs/f2fs/inline.c
+++ b/fs/f2fs/inline.c
@@ -202,6 +202,8 @@ int f2fs_write_inline_data(struct inode *inode, struct page *page)
202{ 202{
203 void *src_addr, *dst_addr; 203 void *src_addr, *dst_addr;
204 struct dnode_of_data dn; 204 struct dnode_of_data dn;
205 struct address_space *mapping = page_mapping(page);
206 unsigned long flags;
205 int err; 207 int err;
206 208
207 set_new_dnode(&dn, inode, NULL, NULL, 0); 209 set_new_dnode(&dn, inode, NULL, NULL, 0);
@@ -223,6 +225,11 @@ int f2fs_write_inline_data(struct inode *inode, struct page *page)
223 kunmap_atomic(src_addr); 225 kunmap_atomic(src_addr);
224 set_page_dirty(dn.inode_page); 226 set_page_dirty(dn.inode_page);
225 227
228 spin_lock_irqsave(&mapping->tree_lock, flags);
229 radix_tree_tag_clear(&mapping->page_tree, page_index(page),
230 PAGECACHE_TAG_DIRTY);
231 spin_unlock_irqrestore(&mapping->tree_lock, flags);
232
226 set_inode_flag(inode, FI_APPEND_WRITE); 233 set_inode_flag(inode, FI_APPEND_WRITE);
227 set_inode_flag(inode, FI_DATA_EXIST); 234 set_inode_flag(inode, FI_DATA_EXIST);
228 235