Whamcloud - gitweb
LU-13488 kernel: RHEL 8.2 server support
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / rhel8.2 / ext4-attach-jinode-in-writepages.patch
diff --git a/ldiskfs/kernel_patches/patches/rhel8.2/ext4-attach-jinode-in-writepages.patch b/ldiskfs/kernel_patches/patches/rhel8.2/ext4-attach-jinode-in-writepages.patch
new file mode 100644 (file)
index 0000000..1281d4b
--- /dev/null
@@ -0,0 +1,44 @@
+Index: linux-4.18.0-193.el8/fs/ext4/inode.c
+===================================================================
+--- linux-4.18.0-193.el8.orig/fs/ext4/inode.c
++++ linux-4.18.0-193.el8/fs/ext4/inode.c
+@@ -731,6 +731,9 @@ out_sem:
+                               (loff_t)map->m_lblk << inode->i_blkbits;
+                       loff_t length = (loff_t)map->m_len << inode->i_blkbits;
++                      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,
+                                               start_byte, length);
+@@ -2815,6 +2818,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);
+@@ -4442,6 +4448,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);