Index: linux-4.15.0/fs/ext4/inode.c =================================================================== --- linux-4.15.0.orig/fs/ext4/inode.c +++ linux-4.15.0/fs/ext4/inode.c @@ -728,6 +728,9 @@ out_sem: !(flags & EXT4_GET_BLOCKS_ZERO) && !ext4_is_quota_file(inode) && ext4_should_order_data(inode)) { + ret = ext4_inode_attach_jinode(inode); + if (ret) + return ret; if (flags & EXT4_GET_BLOCKS_IO_SUBMIT) ret = ext4_jbd2_inode_add_wait(handle, inode); else @@ -2806,6 +2809,9 @@ static int ext4_writepages(struct addres mpd.last_page = wbc->range_end >> PAGE_SHIFT; } + ret = ext4_inode_attach_jinode(inode); + if (ret) + goto out_writepages; mpd.inode = inode; mpd.wbc = wbc; ext4_io_submit_init(&mpd.io_submit, wbc); @@ -4356,6 +4362,7 @@ int ext4_inode_attach_jinode(struct inod jbd2_free_inode(jinode); return 0; } +EXPORT_SYMBOL(ext4_inode_attach_jinode); /* * ext4_truncate() Index: linux-4.15.0/fs/ext4/ext4.h =================================================================== --- linux-4.15.0.orig/fs/ext4/ext4.h +++ linux-4.15.0/fs/ext4/ext4.h @@ -2595,6 +2595,7 @@ extern int ext4_trim_fs(struct super_blo extern void ext4_process_freed_data(struct super_block *sb, tid_t commit_tid); /* inode.c */ +#define HAVE_LDISKFS_INFO_JINODE int ext4_inode_is_fast_symlink(struct inode *inode); struct buffer_head *ext4_getblk(handle_t *, struct inode *, ext4_lblk_t, int); struct buffer_head *ext4_bread(handle_t *, struct inode *, ext4_lblk_t, int);