diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 8e68bb64f83598360ffa8fdb31010aa1c33248f5..543d8c6303450ed23a671ab2771a452d7d54af72 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -473,6 +473,12 @@ int truncate_blocks(struct inode *inode, u64 from, bool lock) return err; } + /* writepage can convert inline_data under get_donde_of_data */ + if (f2fs_has_inline_data(inode)) { + f2fs_put_dnode(&dn); + goto done; + } + count = ADDRS_PER_PAGE(dn.node_page, F2FS_I(inode)); count -= dn.ofs_in_node;