|
@@ -705,6 +705,8 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
|
|
|
struct f2fs_dentry_block *dentry_blk;
|
|
|
unsigned int bit_pos;
|
|
|
int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len));
|
|
|
+ struct address_space *mapping = page_mapping(page);
|
|
|
+ unsigned long flags;
|
|
|
int i;
|
|
|
|
|
|
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,
|
|
|
|
|
|
if (bit_pos == NR_DENTRY_IN_BLOCK &&
|
|
|
!truncate_hole(dir, page->index, page->index + 1)) {
|
|
|
+ spin_lock_irqsave(&mapping->tree_lock, flags);
|
|
|
+ radix_tree_tag_clear(&mapping->page_tree, page_index(page),
|
|
|
+ PAGECACHE_TAG_DIRTY);
|
|
|
+ spin_unlock_irqrestore(&mapping->tree_lock, flags);
|
|
|
+
|
|
|
clear_page_dirty_for_io(page);
|
|
|
ClearPagePrivate(page);
|
|
|
ClearPageUptodate(page);
|