X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=ldiskfs%2Fkernel_patches%2Fpatches%2Fext3-nanosecond-2.6-sles10.patch;h=04c6e61ab1bde90159f4d5b04e535b78a55bf5e3;hp=1960ae113682c9ccffa5534077d2860425dc13be;hb=2403e112d69cb58a15cec0018979a89ae389b3a4;hpb=4d72389a70d651e0e3fe5d54af0d0dd5019d2eb5 diff --git a/ldiskfs/kernel_patches/patches/ext3-nanosecond-2.6-sles10.patch b/ldiskfs/kernel_patches/patches/ext3-nanosecond-2.6-sles10.patch index 1960ae1..04c6e61 100644 --- a/ldiskfs/kernel_patches/patches/ext3-nanosecond-2.6-sles10.patch +++ b/ldiskfs/kernel_patches/patches/ext3-nanosecond-2.6-sles10.patch @@ -198,7 +198,7 @@ Index: linux-2.6.16.27-0.9/fs/ext3/super.c + sbi->s_want_extra_isize = sizeof(struct ext3_inode) - + EXT3_GOOD_OLD_INODE_SIZE; + if (EXT3_HAS_RO_COMPAT_FEATURE(sb, -+ EXT3_FEATURE_RO_COMPAT_EXTRA_ISIZE)) { ++ EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE)) { + if (sbi->s_want_extra_isize < + le16_to_cpu(es->s_want_extra_isize)) + sbi->s_want_extra_isize = @@ -323,31 +323,44 @@ Index: linux-2.6.16.27-0.9/include/linux/ext3_fs.h #if defined(__KERNEL__) || defined(__linux__) #define i_reserved1 osd1.linux1.l_i_reserved1 #define i_frag osd2.linux2.l_i_frag -@@ -508,7 +571,9 @@ struct ext3_super_block { - __u16 s_reserved_word_pad; +@@ -504,11 +567,19 @@ struct ext3_super_block { + __le32 s_last_orphan; /* start of list of inodes to delete */ + __le32 s_hash_seed[4]; /* HTREE hash seed */ + __u8 s_def_hash_version; /* Default hash version to use */ +- __u8 s_reserved_char_pad; +- __u16 s_reserved_word_pad; ++ __u8 s_jnl_backup_type; /* Default type of journal backup */ ++ __le16 s_desc_size; /* Group desc. size: INCOMPAT_64BIT */ __le32 s_default_mount_opts; - __le32 s_first_meta_bg; /* First metablock block group */ +- __le32 s_first_meta_bg; /* First metablock block group */ - __u32 s_reserved[190]; /* Padding to the end of the block */ ++ __le32 s_first_meta_bg; /* First metablock block group */ ++ __le32 s_mkfs_time; /* When the filesystem was created */ ++ __le32 s_jnl_blocks[17]; /* Backup of the journal inode */ ++ __le32 s_blocks_count_hi; /* Blocks count high 32 bits */ ++ __le32 s_r_blocks_count_hi; /* Reserved blocks count high 32 bits*/ ++ __le32 s_free_blocks_hi; /* Free blocks count high 32 bits */ + __le16 s_min_extra_isize; /* All inodes have at least # bytes */ + __le16 s_want_extra_isize; /* New inodes should reserve # bytes */ -+ __u32 s_reserved[189]; /* Padding to the end of the block */ ++ __le32 s_flags; /* Miscellaneous flags */ ++ __u32 s_reserved[167]; /* Padding to the end of the block */ }; #ifdef __KERNEL__ @@ -583,6 +648,8 @@ static inline struct ext3_inode_info *EX - #define EXT3_FEATURE_RO_COMPAT_LARGE_FILE 0x0002 #define EXT3_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 - #define EXT3_FEATURE_RO_COMPAT_DIR_NLINK 0x0020 -+#define EXT3_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040 + #define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010 + #define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020 ++#define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040 + #define EXT3_FEATURE_INCOMPAT_COMPRESSION 0x0001 #define EXT3_FEATURE_INCOMPAT_FILETYPE 0x0002 @@ -599,6 +666,7 @@ static inline struct ext3_inode_info *EX - #define EXT3_FEATURE_RO_COMPAT_SUPP (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \ EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \ - EXT3_FEATURE_RO_COMPAT_DIR_NLINK| \ -+ EXT3_FEATURE_RO_COMPAT_EXTRA_ISIZE| \ + EXT4_FEATURE_RO_COMPAT_GDT_CSUM| \ + EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \ ++ EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE| \ EXT3_FEATURE_RO_COMPAT_BTREE_DIR) /* @@ -368,24 +381,24 @@ Index: linux-2.6.16.27-0.9/include/linux/ext3_fs_i.h =================================================================== --- linux-2.6.16.27-0.9.orig/include/linux/ext3_fs_i.h +++ linux-2.6.16.27-0.9/include/linux/ext3_fs_i.h -@@ -135,6 +135,7 @@ struct ext3_inode_info { - struct inode vfs_inode; +@@ -130,6 +130,7 @@ struct ext3_inode_info { - __u32 i_cached_extent[4]; + /* on-disk additional length */ + __u16 i_extra_isize; + struct timespec i_crtime; - void *i_filterdata; - }; + /* + * truncate_sem is for serialising ext3_truncate() against Index: linux-2.6.16.27-0.9/include/linux/ext3_fs_sb.h =================================================================== --- linux-2.6.16.27-0.9.orig/include/linux/ext3_fs_sb.h +++ linux-2.6.16.27-0.9/include/linux/ext3_fs_sb.h -@@ -119,6 +119,8 @@ struct ext3_sb_info { - spinlock_t s_bal_lock; - unsigned long s_mb_buddies_generated; - unsigned long long s_mb_generation_time; -+ -+ unsigned int s_want_extra_isize; /* New inodes should reserve # bytes */ - }; +@@ -71,6 +71,8 @@ struct ext3_sb_info { + /* Last group used to allocate inode */ + int s_last_alloc_group; - #define EXT3_GROUP_INFO(sb, group) \ ++ unsigned int s_want_extra_isize; /* New inodes should reserve # bytes */ ++ + /* root of the per fs reservation window tree */ + spinlock_t s_rsv_window_lock; + struct rb_root s_rsv_window_root;