Whamcloud - gitweb
LU-2473 ldiskfs: Reorganize ldiskfs kernel patches
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / sles11sp1 / ext4-ext_generation.patch
diff --git a/ldiskfs/kernel_patches/patches/sles11sp1/ext4-ext_generation.patch b/ldiskfs/kernel_patches/patches/sles11sp1/ext4-ext_generation.patch
new file mode 100644 (file)
index 0000000..490d92e
--- /dev/null
@@ -0,0 +1,48 @@
+Index: linux-2.6.27.21-0.1/fs/ext4/ext4_extents.h
+===================================================================
+--- linux-2.6.27.21-0.1.orig/fs/ext4/ext4_extents.h    2009-07-07 14:47:22.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/ext4_extents.h 2009-07-07 14:49:31.000000000 +0530
+@@ -203,6 +203,11 @@
+       return le16_to_cpu(ext_inode_hdr(inode)->eh_depth);
+ }
++static inline void ext4_ext_tree_changed(struct inode *inode)
++{
++      EXT4_I(inode)->i_ext_generation++;
++}
++
+ static inline void
+ ext4_ext_invalidate_cache(struct inode *inode)
+ {
+Index: linux-2.6.27.21-0.1/fs/ext4/ext4.h
+===================================================================
+--- linux-2.6.27.21-0.1.orig/fs/ext4/ext4.h    2009-07-07 14:47:13.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/ext4.h 2009-07-07 14:50:07.000000000 +0530
+@@ -114,6 +114,7 @@
+       struct inode vfs_inode;
+       struct jbd2_inode jinode;
++      unsigned long i_ext_generation;
+       struct ext4_ext_cache i_cached_extent;
+       /*
+        * File creation time. Its function is same as that of
+Index: linux-2.6.27.21-0.1/fs/ext4/extents.c
+===================================================================
+--- linux-2.6.27.21-0.1.orig/fs/ext4/extents.c 2009-07-07 14:48:03.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/extents.c      2009-07-07 14:48:58.000000000 +0530
+@@ -1618,6 +1618,7 @@
+               ext4_ext_drop_refs(npath);
+               kfree(npath);
+       }
++      ext4_ext_tree_changed(inode);
+       ext4_ext_invalidate_cache(inode);
+       return err;
+ }
+@@ -2279,6 +2280,7 @@
+               }
+       }
+ out:
++      ext4_ext_tree_changed(inode);
+       ext4_ext_drop_refs(path);
+       kfree(path);
+       ext4_journal_stop(handle);