|
@@ -176,6 +176,24 @@ int f2fs_write_inline_data(struct inode *inode,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+void truncate_inline_data(struct inode *inode, u64 from)
|
|
|
+{
|
|
|
+ struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
|
|
|
+ struct page *ipage;
|
|
|
+
|
|
|
+ if (from >= MAX_INLINE_DATA)
|
|
|
+ return;
|
|
|
+
|
|
|
+ ipage = get_node_page(sbi, inode->i_ino);
|
|
|
+ if (IS_ERR(ipage))
|
|
|
+ return;
|
|
|
+
|
|
|
+ zero_user_segment(ipage, INLINE_DATA_OFFSET + from,
|
|
|
+ INLINE_DATA_OFFSET + MAX_INLINE_DATA);
|
|
|
+ set_page_dirty(ipage);
|
|
|
+ f2fs_put_page(ipage, 1);
|
|
|
+}
|
|
|
+
|
|
|
int recover_inline_data(struct inode *inode, struct page *npage)
|
|
|
{
|
|
|
struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
|