From 9ec0e55d84c48b28ec2a8194d33039247918062c Mon Sep 17 00:00:00 2001 From: adilger Date: Fri, 11 May 2007 22:48:54 +0000 Subject: [PATCH] Branch b1_6 Add uninit_groups and mballoc3 for sles10 kernel. b=11264 --- .../patches/ext3-mballoc2-2.6-fc5.patch | 74 ++++++++++--------- .../patches/ext3-mballoc2-2.6-suse.patch | 9 +-- .../patches/ext3-mballoc2-2.6.12.patch | 9 +-- .../patches/ext3-mballoc2-2.6.9-rhel4.patch | 9 +-- .../patches/ext3-check-jbd-errors-2.6-sles10.patch | 83 ++++++++++++++++++++++ .../patches/ext3-filterdata-sles10.patch | 25 +++++++ .../patches/ext3-mballoc2-2.6-fc5.patch | 74 ++++++++++--------- .../patches/ext3-mballoc2-2.6-suse.patch | 9 +-- .../patches/ext3-mballoc2-2.6.12.patch | 9 +-- .../patches/ext3-mballoc2-2.6.9-rhel4.patch | 9 +-- .../series/ldiskfs2-2.6-sles10.series | 9 ++- 11 files changed, 205 insertions(+), 114 deletions(-) create mode 100644 lustre/kernel_patches/patches/ext3-check-jbd-errors-2.6-sles10.patch create mode 100644 lustre/kernel_patches/patches/ext3-filterdata-sles10.patch diff --git a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch index 07ce289..90a9123 100644 --- a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch +++ b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch @@ -17,7 +17,7 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs.h /* * Special inodes numbers */ -@@ -383,6 +391,7 @@ struct ext3_inode { +@@ -383,6 +391,7 @@ #define EXT3_MOUNT_IOPEN_NOPRIV 0x800000/* Make iopen world-readable */ #define EXT3_MOUNT_EXTENTS 0x1000000/* Extents support */ #define EXT3_MOUNT_EXTDEBUG 0x2000000/* Extents debug */ @@ -40,12 +40,14 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -744,7 +753,7 @@ +@@ -744,7 +753,9 @@ extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *handle, struct inode *inode, ++ unsigned long goal, int *errp); extern void ext3_free_blocks_sb (handle_t *, struct super_block *, unsigned long, unsigned long, int *); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -86,7 +88,7 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs_sb.h /* * third extended-fs super-block data in memory -@@ -78,6 +84,43 @@ struct ext3_sb_info { +@@ -78,6 +84,43 @@ char *s_qf_names[MAXQUOTAS]; /* Names of quota files with journalled quota */ int s_jquota_fmt; /* Format of quota to use */ #endif @@ -134,7 +136,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/super.c 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/super.c 2006-05-30 23:02:59.000000000 +0800 -@@ -392,6 +392,7 @@ static void ext3_put_super (struct super +@@ -392,6 +392,7 @@ struct ext3_super_block *es = sbi->s_es; int i; @@ -142,7 +144,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c ext3_ext_release(sb); ext3_xattr_put_super(sb); journal_destroy(sbi->s_journal); -@@ -640,6 +641,7 @@ enum { +@@ -640,6 +641,7 @@ Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota, Opt_iopen, Opt_noiopen, Opt_iopen_nopriv, Opt_extents, Opt_noextents, Opt_extdebug, @@ -150,7 +152,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c Opt_grpquota }; -@@ -694,6 +695,9 @@ static match_table_t tokens = { +@@ -694,6 +695,9 @@ {Opt_extents, "extents"}, {Opt_noextents, "noextents"}, {Opt_extdebug, "extdebug"}, @@ -160,7 +162,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c {Opt_barrier, "barrier=%u"}, {Opt_err, NULL}, {Opt_resize, "resize"}, -@@ -1041,6 +1043,19 @@ clear_qf_name: +@@ -1041,6 +1043,19 @@ case Opt_extdebug: set_opt (sbi->s_mount_opt, EXTDEBUG); break; @@ -180,7 +182,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c default: printk (KERN_ERR "EXT3-fs: Unrecognized mount option \"%s\" " -@@ -1766,6 +1771,7 @@ static int ext3_fill_super (struct super +@@ -1766,6 +1771,7 @@ ext3_count_dirs(sb)); ext3_ext_init(sb); @@ -188,7 +190,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c lock_kernel(); return 0; -@@ -2699,7 +2705,13 @@ static struct file_system_type ext3_fs_t +@@ -2699,7 +2705,13 @@ static int __init init_ext3_fs(void) { @@ -203,7 +205,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c if (err) return err; err = init_inodecache(); -@@ -2721,6 +2733,7 @@ static void __exit exit_ext3_fs(void) +@@ -2721,6 +2733,7 @@ unregister_filesystem(&ext3_fs_type); destroy_inodecache(); exit_ext3_xattr(); @@ -215,7 +217,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/extents.c 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/extents.c 2006-05-30 23:02:59.000000000 +0800 -@@ -771,7 +771,7 @@ cleanup: +@@ -771,7 +771,7 @@ for (i = 0; i < depth; i++) { if (!ablocks[i]) continue; @@ -224,7 +226,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c } } kfree(ablocks); -@@ -1428,7 +1428,7 @@ int ext3_ext_rm_idx(handle_t *handle, st +@@ -1428,7 +1428,7 @@ path->p_idx->ei_leaf); bh = sb_find_get_block(tree->inode->i_sb, path->p_idx->ei_leaf); ext3_forget(handle, 1, tree->inode, bh, path->p_idx->ei_leaf); @@ -233,7 +235,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c return err; } -@@ -1913,10 +1913,12 @@ ext3_remove_blocks(struct ext3_extents_t +@@ -1913,10 +1913,12 @@ int needed = ext3_remove_blocks_credits(tree, ex, from, to); handle_t *handle = ext3_journal_start(tree->inode, needed); struct buffer_head *bh; @@ -247,7 +249,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c if (from >= ex->ee_block && to == ex->ee_block + ex->ee_len - 1) { /* tail removal */ unsigned long num, start; -@@ -1928,7 +1930,7 @@ ext3_remove_blocks(struct ext3_extents_t +@@ -1928,7 +1930,7 @@ bh = sb_find_get_block(tree->inode->i_sb, start + i); ext3_forget(handle, 0, tree->inode, bh, start + i); } @@ -260,7 +262,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/inode.c 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/inode.c 2006-05-30 23:02:59.000000000 +0800 -@@ -568,7 +568,7 @@ failed: +@@ -568,7 +568,7 @@ ext3_journal_forget(handle, branch[i].bh); } for (i = 0; i < keys; i++) @@ -269,7 +271,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c return err; } -@@ -1862,7 +1862,7 @@ static void ext3_clear_blocks(handle_t * +@@ -1862,7 +1862,7 @@ } } @@ -278,7 +280,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c } /** -@@ -2035,7 +2035,7 @@ static void ext3_free_branches(handle_t +@@ -2035,7 +2035,7 @@ ext3_journal_test_restart(handle, inode); } @@ -291,7 +293,7 @@ Index: linux-2.6.16.i686/fs/ext3/balloc.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/balloc.c 2006-03-20 13:53:29.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/balloc.c 2006-05-30 23:02:59.000000000 +0800 -@@ -80,7 +80,7 @@ struct ext3_group_desc * ext3_get_group_ +@@ -80,7 +80,7 @@ * * Return buffer_head on success or NULL in case of failure. */ @@ -300,7 +302,7 @@ Index: linux-2.6.16.i686/fs/ext3/balloc.c read_block_bitmap(struct super_block *sb, unsigned int block_group) { struct ext3_group_desc * desc; -@@ -491,24 +491,6 @@ error_return: +@@ -491,24 +491,6 @@ return; } @@ -325,7 +327,7 @@ Index: linux-2.6.16.i686/fs/ext3/balloc.c /* * For ext3 allocations, we must not reuse any blocks which are * allocated in the bitmap buffer's "last committed data" copy. This -@@ -1154,7 +1136,7 @@ out: +@@ -1154,7 +1136,7 @@ * bitmap, and then for any free bit if that fails. * This function also updates quota and i_blocks field. */ @@ -338,7 +340,7 @@ Index: linux-2.6.16.i686/fs/ext3/xattr.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/xattr.c 2006-03-20 13:53:29.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/xattr.c 2006-05-30 23:02:59.000000000 +0800 -@@ -484,7 +484,7 @@ ext3_xattr_release_block(handle_t *handl +@@ -484,7 +484,7 @@ ea_bdebug(bh, "refcount now=0; freeing"); if (ce) mb_cache_entry_free(ce); @@ -347,7 +349,7 @@ Index: linux-2.6.16.i686/fs/ext3/xattr.c get_bh(bh); ext3_forget(handle, 1, inode, bh, bh->b_blocknr); } else { -@@ -804,7 +804,7 @@ inserted: +@@ -804,7 +804,7 @@ new_bh = sb_getblk(sb, block); if (!new_bh) { getblk_failed: @@ -360,7 +362,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/mballoc.c 2006-05-31 04:14:15.752410384 +0800 +++ linux-2.6.16.i686/fs/ext3/mballoc.c 2006-05-30 23:03:38.000000000 +0800 -@@ -0,0 +1,2729 @@ +@@ -0,0 +1,2725 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -468,7 +470,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + +struct ext3_group_info { + unsigned long bb_state; -+ unsigned long bb_tid; ++ unsigned long bb_tid; + struct ext3_free_metadata *bb_md_cur; + unsigned short bb_first_free; + unsigned short bb_free; @@ -504,7 +506,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + __u16 ac_found; + __u16 ac_tail; + __u16 ac_buddy; -+ __u8 ac_status; ++ __u8 ac_status; + __u8 ac_flags; /* allocation hints */ + __u8 ac_criteria; + __u8 ac_repeats; @@ -556,11 +558,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); -+struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); ++struct buffer_head *read_block_bitmap(struct super_block *, unsigned int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + @@ -1565,11 +1563,11 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + J_ASSERT(sbi->s_stripe != 0); + + /* find first stripe-aligned block */ -+ i = e3b->bd_group * EXT3_BLOCKS_PER_GROUP(sb) + -+ le32_to_cpu(sbi->s_es->s_first_data_block); ++ i = e3b->bd_group * EXT3_BLOCKS_PER_GROUP(sb) ++ + le32_to_cpu(sbi->s_es->s_first_data_block); + i = ((i + sbi->s_stripe - 1) / sbi->s_stripe) * sbi->s_stripe; -+ i = (i - le32_to_cpu(sbi->s_es->s_first_data_block)) % -+ EXT3_BLOCKS_PER_GROUP(sb); ++ i = (i - le32_to_cpu(sbi->s_es->s_first_data_block)) ++ % EXT3_BLOCKS_PER_GROUP(sb); + + while (i < sb->s_blocksize * 8) { + if (!mb_test_bit(i, bitmap)) { @@ -2918,7 +2916,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + if (value <= 0) + return -ERANGE; + -+ ext3_mb_max_to_scan = value; ++ ext3_mb_max_to_scan = value; + + return count; +} @@ -2957,7 +2955,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + if (value <= 0) + return -ERANGE; + -+ ext3_mb_min_to_scan = value; ++ ext3_mb_min_to_scan = value; + + return count; +} @@ -2996,7 +2994,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + if (value <= 0) + return -ERANGE; + -+ ext3_mb_order2_reqs = value; ++ ext3_mb_order2_reqs = value; + + return count; +} @@ -3094,7 +3092,7 @@ Index: linux-2.6.16.i686/fs/ext3/Makefile =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/Makefile 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/Makefile 2006-05-30 23:02:59.000000000 +0800 -@@ -6,7 +6,7 @@ obj-$(CONFIG_EXT3_FS) += ext3.o +@@ -6,7 +6,7 @@ ext3-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o iopen.o \ ioctl.o namei.o super.o symlink.o hash.o resize.o \ diff --git a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch index 1fb1b60..cec1877 100644 --- a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch +++ b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch @@ -40,12 +40,13 @@ Index: linux-2.6.5-7.282-full/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -700,7 +717,9 @@ extern int ext3_bg_has_super(struct supe +@@ -700,7 +717,10 @@ extern int ext3_bg_has_super(struct supe extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); +extern void ext3_free_blocks_old(handle_t *, struct inode *, unsigned long, + unsigned long); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -365,7 +366,7 @@ Index: linux-2.6.5-7.282-full/fs/ext3/mballoc.c =================================================================== --- linux-2.6.5-7.282-full.orig/fs/ext3/mballoc.c 2006-10-23 18:07:54.821533176 +0400 +++ linux-2.6.5-7.282-full/fs/ext3/mballoc.c 2006-10-24 22:20:45.000000000 +0400 -@@ -0,0 +1,2730 @@ +@@ -0,0 +1,2726 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -561,11 +562,7 @@ Index: linux-2.6.5-7.282-full/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); +struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + diff --git a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.12.patch b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.12.patch index 7aaf8cd..135262a 100644 --- a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.12.patch +++ b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.12.patch @@ -40,12 +40,13 @@ Index: linux-2.6.12.6-bull/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -727,7 +736,7 @@ extern int ext3_bg_has_super(struct supe +@@ -727,7 +736,8 @@ extern int ext3_bg_has_super(struct supe extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks_sb (handle_t *, struct super_block *, unsigned long, unsigned long, int *); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -360,7 +361,7 @@ Index: linux-2.6.12.6-bull/fs/ext3/mballoc.c =================================================================== --- linux-2.6.12.6-bull.orig/fs/ext3/mballoc.c 2006-04-22 17:31:47.543334750 +0400 +++ linux-2.6.12.6-bull/fs/ext3/mballoc.c 2006-04-30 01:24:11.000000000 +0400 -@@ -0,0 +1,2729 @@ +@@ -0,0 +1,2725 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -556,11 +557,7 @@ Index: linux-2.6.12.6-bull/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); +struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + diff --git a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch index 2a4e19b..4512098 100644 --- a/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch +++ b/ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch @@ -40,12 +40,13 @@ Index: linux-2.6.9-full/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -726,7 +743,7 @@ extern int ext3_bg_has_super(struct supe +@@ -726,7 +743,8 @@ extern int ext3_bg_has_super(struct supe extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks_sb (handle_t *, struct super_block *, unsigned long, unsigned long, int *); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -379,7 +380,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c =================================================================== --- linux-2.6.9-full.orig/fs/ext3/mballoc.c 2006-10-23 18:07:54.821533176 +0400 +++ linux-2.6.9-full/fs/ext3/mballoc.c 2006-10-24 13:00:56.000000000 +0400 -@@ -0,0 +1,2729 @@ +@@ -0,0 +1,2725 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -575,11 +576,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); +struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + diff --git a/lustre/kernel_patches/patches/ext3-check-jbd-errors-2.6-sles10.patch b/lustre/kernel_patches/patches/ext3-check-jbd-errors-2.6-sles10.patch new file mode 100644 index 0000000..3724fd9 --- /dev/null +++ b/lustre/kernel_patches/patches/ext3-check-jbd-errors-2.6-sles10.patch @@ -0,0 +1,83 @@ +Index: linux-stage/include/linux/ext3_fs.h +=================================================================== +--- linux-stage.orig/include/linux/ext3_fs.h ++++ linux-stage/include/linux/ext3_fs.h +@@ -921,6 +921,7 @@ extern unsigned ext3_list_backups(struct + unsigned *five, unsigned *seven); + + /* super.c */ ++extern void ext3_commit_super (struct super_block *, struct ext3_super_block *, int); + extern void ext3_error (struct super_block *, const char *, const char *, ...) + __attribute__ ((format (printf, 3, 4))); + extern void __ext3_std_error (struct super_block *, const char *, int); +Index: linux-stage/fs/ext3/super.c +=================================================================== +--- linux-stage.orig/fs/ext3/super.c ++++ linux-stage/fs/ext3/super.c +@@ -47,9 +47,6 @@ static int ext3_load_journal(struct supe + unsigned long journal_devnum); + static int ext3_create_journal(struct super_block *, struct ext3_super_block *, + int); +-static void ext3_commit_super (struct super_block * sb, +- struct ext3_super_block * es, +- int sync); + static void ext3_mark_recovery_complete(struct super_block * sb, + struct ext3_super_block * es); + static void ext3_clear_journal_err(struct super_block * sb, +@@ -2175,7 +2172,7 @@ static int ext3_create_journal(struct su + return 0; + } + +-static void ext3_commit_super (struct super_block * sb, ++void ext3_commit_super (struct super_block * sb, + struct ext3_super_block * es, + int sync) + { +Index: linux-stage/fs/ext3/namei.c +=================================================================== +--- linux-stage.orig/fs/ext3/namei.c ++++ linux-stage/fs/ext3/namei.c +@@ -1591,7 +1591,7 @@ static int ext3_delete_entry (handle_t * + struct buffer_head * bh) + { + struct ext3_dir_entry_2 * de, * pde; +- int i; ++ int i, err; + + i = 0; + pde = NULL; +@@ -1601,7 +1601,9 @@ static int ext3_delete_entry (handle_t * + return -EIO; + if (de == de_del) { + BUFFER_TRACE(bh, "get_write_access"); +- ext3_journal_get_write_access(handle, bh); ++ err = ext3_journal_get_write_access(handle, bh); ++ if (err) ++ return err; + if (pde) + pde->rec_len = + cpu_to_le16(le16_to_cpu(pde->rec_len) + +Index: linux-stage/fs/ext3/inode.c +=================================================================== +--- linux-stage.orig/fs/ext3/inode.c ++++ linux-stage/fs/ext3/inode.c +@@ -1838,8 +1838,18 @@ ext3_clear_blocks(handle_t *handle, stru + ext3_mark_inode_dirty(handle, inode); + ext3_journal_test_restart(handle, inode); + if (bh) { ++ int err; + BUFFER_TRACE(bh, "retaking write access"); +- ext3_journal_get_write_access(handle, bh); ++ err = ext3_journal_get_write_access(handle, bh); ++ if (err) { ++ struct super_block *sb = inode->i_sb; ++ struct ext3_super_block *es = EXT3_SB(sb)->s_es; ++ printk (KERN_CRIT"EXT3-fs: can't continue truncate\n"); ++ EXT3_SB(sb)->s_mount_state |= EXT3_ERROR_FS; ++ es->s_state |= cpu_to_le16(EXT3_ERROR_FS); ++ ext3_commit_super(sb, es, 1); ++ return; ++ } + } + } + diff --git a/lustre/kernel_patches/patches/ext3-filterdata-sles10.patch b/lustre/kernel_patches/patches/ext3-filterdata-sles10.patch new file mode 100644 index 0000000..5f7c8c9 --- /dev/null +++ b/lustre/kernel_patches/patches/ext3-filterdata-sles10.patch @@ -0,0 +1,25 @@ +Index: linux-2.6.16.27-0.9-full/include/linux/ext3_fs_i.h +=================================================================== +--- linux-2.6.16.27-0.9-full.orig/include/linux/ext3_fs_i.h 2007-03-28 16:03:20.000000000 +0400 ++++ linux-2.6.16.27-0.9-full/include/linux/ext3_fs_i.h 2007-03-28 19:40:53.000000000 +0400 +@@ -139,6 +139,8 @@ struct ext3_inode_info { + /* mballoc */ + struct list_head i_prealloc_list; + spinlock_t i_prealloc_lock; ++ ++ void *i_filterdata; + }; + + #endif /* _LINUX_EXT3_FS_I */ +Index: linux-2.6.16.27-0.9-full/fs/ext3/super.c +=================================================================== +--- linux-2.6.16.27-0.9-full.orig/fs/ext3/super.c 2007-03-28 18:20:17.000000000 +0400 ++++ linux-2.6.16.27-0.9-full/fs/ext3/super.c 2007-03-28 19:40:53.000000000 +0400 +@@ -462,6 +462,7 @@ static struct inode *ext3_alloc_inode(st + memset(&ei->i_cached_extent, 0, sizeof(ei->i_cached_extent)); + INIT_LIST_HEAD(&ei->i_prealloc_list); + spin_lock_init(&ei->i_prealloc_lock); ++ ei->i_filterdata = NULL; + return &ei->vfs_inode; + } + diff --git a/lustre/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch b/lustre/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch index 07ce289..90a9123 100644 --- a/lustre/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch +++ b/lustre/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch @@ -17,7 +17,7 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs.h /* * Special inodes numbers */ -@@ -383,6 +391,7 @@ struct ext3_inode { +@@ -383,6 +391,7 @@ #define EXT3_MOUNT_IOPEN_NOPRIV 0x800000/* Make iopen world-readable */ #define EXT3_MOUNT_EXTENTS 0x1000000/* Extents support */ #define EXT3_MOUNT_EXTDEBUG 0x2000000/* Extents debug */ @@ -40,12 +40,14 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -744,7 +753,7 @@ +@@ -744,7 +753,9 @@ extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *handle, struct inode *inode, ++ unsigned long goal, int *errp); extern void ext3_free_blocks_sb (handle_t *, struct super_block *, unsigned long, unsigned long, int *); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -86,7 +88,7 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs_sb.h /* * third extended-fs super-block data in memory -@@ -78,6 +84,43 @@ struct ext3_sb_info { +@@ -78,6 +84,43 @@ char *s_qf_names[MAXQUOTAS]; /* Names of quota files with journalled quota */ int s_jquota_fmt; /* Format of quota to use */ #endif @@ -134,7 +136,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/super.c 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/super.c 2006-05-30 23:02:59.000000000 +0800 -@@ -392,6 +392,7 @@ static void ext3_put_super (struct super +@@ -392,6 +392,7 @@ struct ext3_super_block *es = sbi->s_es; int i; @@ -142,7 +144,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c ext3_ext_release(sb); ext3_xattr_put_super(sb); journal_destroy(sbi->s_journal); -@@ -640,6 +641,7 @@ enum { +@@ -640,6 +641,7 @@ Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota, Opt_iopen, Opt_noiopen, Opt_iopen_nopriv, Opt_extents, Opt_noextents, Opt_extdebug, @@ -150,7 +152,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c Opt_grpquota }; -@@ -694,6 +695,9 @@ static match_table_t tokens = { +@@ -694,6 +695,9 @@ {Opt_extents, "extents"}, {Opt_noextents, "noextents"}, {Opt_extdebug, "extdebug"}, @@ -160,7 +162,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c {Opt_barrier, "barrier=%u"}, {Opt_err, NULL}, {Opt_resize, "resize"}, -@@ -1041,6 +1043,19 @@ clear_qf_name: +@@ -1041,6 +1043,19 @@ case Opt_extdebug: set_opt (sbi->s_mount_opt, EXTDEBUG); break; @@ -180,7 +182,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c default: printk (KERN_ERR "EXT3-fs: Unrecognized mount option \"%s\" " -@@ -1766,6 +1771,7 @@ static int ext3_fill_super (struct super +@@ -1766,6 +1771,7 @@ ext3_count_dirs(sb)); ext3_ext_init(sb); @@ -188,7 +190,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c lock_kernel(); return 0; -@@ -2699,7 +2705,13 @@ static struct file_system_type ext3_fs_t +@@ -2699,7 +2705,13 @@ static int __init init_ext3_fs(void) { @@ -203,7 +205,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c if (err) return err; err = init_inodecache(); -@@ -2721,6 +2733,7 @@ static void __exit exit_ext3_fs(void) +@@ -2721,6 +2733,7 @@ unregister_filesystem(&ext3_fs_type); destroy_inodecache(); exit_ext3_xattr(); @@ -215,7 +217,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/extents.c 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/extents.c 2006-05-30 23:02:59.000000000 +0800 -@@ -771,7 +771,7 @@ cleanup: +@@ -771,7 +771,7 @@ for (i = 0; i < depth; i++) { if (!ablocks[i]) continue; @@ -224,7 +226,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c } } kfree(ablocks); -@@ -1428,7 +1428,7 @@ int ext3_ext_rm_idx(handle_t *handle, st +@@ -1428,7 +1428,7 @@ path->p_idx->ei_leaf); bh = sb_find_get_block(tree->inode->i_sb, path->p_idx->ei_leaf); ext3_forget(handle, 1, tree->inode, bh, path->p_idx->ei_leaf); @@ -233,7 +235,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c return err; } -@@ -1913,10 +1913,12 @@ ext3_remove_blocks(struct ext3_extents_t +@@ -1913,10 +1913,12 @@ int needed = ext3_remove_blocks_credits(tree, ex, from, to); handle_t *handle = ext3_journal_start(tree->inode, needed); struct buffer_head *bh; @@ -247,7 +249,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c if (from >= ex->ee_block && to == ex->ee_block + ex->ee_len - 1) { /* tail removal */ unsigned long num, start; -@@ -1928,7 +1930,7 @@ ext3_remove_blocks(struct ext3_extents_t +@@ -1928,7 +1930,7 @@ bh = sb_find_get_block(tree->inode->i_sb, start + i); ext3_forget(handle, 0, tree->inode, bh, start + i); } @@ -260,7 +262,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/inode.c 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/inode.c 2006-05-30 23:02:59.000000000 +0800 -@@ -568,7 +568,7 @@ failed: +@@ -568,7 +568,7 @@ ext3_journal_forget(handle, branch[i].bh); } for (i = 0; i < keys; i++) @@ -269,7 +271,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c return err; } -@@ -1862,7 +1862,7 @@ static void ext3_clear_blocks(handle_t * +@@ -1862,7 +1862,7 @@ } } @@ -278,7 +280,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c } /** -@@ -2035,7 +2035,7 @@ static void ext3_free_branches(handle_t +@@ -2035,7 +2035,7 @@ ext3_journal_test_restart(handle, inode); } @@ -291,7 +293,7 @@ Index: linux-2.6.16.i686/fs/ext3/balloc.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/balloc.c 2006-03-20 13:53:29.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/balloc.c 2006-05-30 23:02:59.000000000 +0800 -@@ -80,7 +80,7 @@ struct ext3_group_desc * ext3_get_group_ +@@ -80,7 +80,7 @@ * * Return buffer_head on success or NULL in case of failure. */ @@ -300,7 +302,7 @@ Index: linux-2.6.16.i686/fs/ext3/balloc.c read_block_bitmap(struct super_block *sb, unsigned int block_group) { struct ext3_group_desc * desc; -@@ -491,24 +491,6 @@ error_return: +@@ -491,24 +491,6 @@ return; } @@ -325,7 +327,7 @@ Index: linux-2.6.16.i686/fs/ext3/balloc.c /* * For ext3 allocations, we must not reuse any blocks which are * allocated in the bitmap buffer's "last committed data" copy. This -@@ -1154,7 +1136,7 @@ out: +@@ -1154,7 +1136,7 @@ * bitmap, and then for any free bit if that fails. * This function also updates quota and i_blocks field. */ @@ -338,7 +340,7 @@ Index: linux-2.6.16.i686/fs/ext3/xattr.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/xattr.c 2006-03-20 13:53:29.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/xattr.c 2006-05-30 23:02:59.000000000 +0800 -@@ -484,7 +484,7 @@ ext3_xattr_release_block(handle_t *handl +@@ -484,7 +484,7 @@ ea_bdebug(bh, "refcount now=0; freeing"); if (ce) mb_cache_entry_free(ce); @@ -347,7 +349,7 @@ Index: linux-2.6.16.i686/fs/ext3/xattr.c get_bh(bh); ext3_forget(handle, 1, inode, bh, bh->b_blocknr); } else { -@@ -804,7 +804,7 @@ inserted: +@@ -804,7 +804,7 @@ new_bh = sb_getblk(sb, block); if (!new_bh) { getblk_failed: @@ -360,7 +362,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/mballoc.c 2006-05-31 04:14:15.752410384 +0800 +++ linux-2.6.16.i686/fs/ext3/mballoc.c 2006-05-30 23:03:38.000000000 +0800 -@@ -0,0 +1,2729 @@ +@@ -0,0 +1,2725 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -468,7 +470,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + +struct ext3_group_info { + unsigned long bb_state; -+ unsigned long bb_tid; ++ unsigned long bb_tid; + struct ext3_free_metadata *bb_md_cur; + unsigned short bb_first_free; + unsigned short bb_free; @@ -504,7 +506,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + __u16 ac_found; + __u16 ac_tail; + __u16 ac_buddy; -+ __u8 ac_status; ++ __u8 ac_status; + __u8 ac_flags; /* allocation hints */ + __u8 ac_criteria; + __u8 ac_repeats; @@ -556,11 +558,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); -+struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); ++struct buffer_head *read_block_bitmap(struct super_block *, unsigned int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + @@ -1565,11 +1563,11 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + J_ASSERT(sbi->s_stripe != 0); + + /* find first stripe-aligned block */ -+ i = e3b->bd_group * EXT3_BLOCKS_PER_GROUP(sb) + -+ le32_to_cpu(sbi->s_es->s_first_data_block); ++ i = e3b->bd_group * EXT3_BLOCKS_PER_GROUP(sb) ++ + le32_to_cpu(sbi->s_es->s_first_data_block); + i = ((i + sbi->s_stripe - 1) / sbi->s_stripe) * sbi->s_stripe; -+ i = (i - le32_to_cpu(sbi->s_es->s_first_data_block)) % -+ EXT3_BLOCKS_PER_GROUP(sb); ++ i = (i - le32_to_cpu(sbi->s_es->s_first_data_block)) ++ % EXT3_BLOCKS_PER_GROUP(sb); + + while (i < sb->s_blocksize * 8) { + if (!mb_test_bit(i, bitmap)) { @@ -2918,7 +2916,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + if (value <= 0) + return -ERANGE; + -+ ext3_mb_max_to_scan = value; ++ ext3_mb_max_to_scan = value; + + return count; +} @@ -2957,7 +2955,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + if (value <= 0) + return -ERANGE; + -+ ext3_mb_min_to_scan = value; ++ ext3_mb_min_to_scan = value; + + return count; +} @@ -2996,7 +2994,7 @@ Index: linux-2.6.16.i686/fs/ext3/mballoc.c + if (value <= 0) + return -ERANGE; + -+ ext3_mb_order2_reqs = value; ++ ext3_mb_order2_reqs = value; + + return count; +} @@ -3094,7 +3092,7 @@ Index: linux-2.6.16.i686/fs/ext3/Makefile =================================================================== --- linux-2.6.16.i686.orig/fs/ext3/Makefile 2006-05-30 22:55:32.000000000 +0800 +++ linux-2.6.16.i686/fs/ext3/Makefile 2006-05-30 23:02:59.000000000 +0800 -@@ -6,7 +6,7 @@ obj-$(CONFIG_EXT3_FS) += ext3.o +@@ -6,7 +6,7 @@ ext3-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o iopen.o \ ioctl.o namei.o super.o symlink.o hash.o resize.o \ diff --git a/lustre/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch b/lustre/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch index 1fb1b60..cec1877 100644 --- a/lustre/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch +++ b/lustre/kernel_patches/patches/ext3-mballoc2-2.6-suse.patch @@ -40,12 +40,13 @@ Index: linux-2.6.5-7.282-full/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -700,7 +717,9 @@ extern int ext3_bg_has_super(struct supe +@@ -700,7 +717,10 @@ extern int ext3_bg_has_super(struct supe extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); +extern void ext3_free_blocks_old(handle_t *, struct inode *, unsigned long, + unsigned long); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -365,7 +366,7 @@ Index: linux-2.6.5-7.282-full/fs/ext3/mballoc.c =================================================================== --- linux-2.6.5-7.282-full.orig/fs/ext3/mballoc.c 2006-10-23 18:07:54.821533176 +0400 +++ linux-2.6.5-7.282-full/fs/ext3/mballoc.c 2006-10-24 22:20:45.000000000 +0400 -@@ -0,0 +1,2730 @@ +@@ -0,0 +1,2726 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -561,11 +562,7 @@ Index: linux-2.6.5-7.282-full/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); +struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + diff --git a/lustre/kernel_patches/patches/ext3-mballoc2-2.6.12.patch b/lustre/kernel_patches/patches/ext3-mballoc2-2.6.12.patch index 7aaf8cd..135262a 100644 --- a/lustre/kernel_patches/patches/ext3-mballoc2-2.6.12.patch +++ b/lustre/kernel_patches/patches/ext3-mballoc2-2.6.12.patch @@ -40,12 +40,13 @@ Index: linux-2.6.12.6-bull/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -727,7 +736,7 @@ extern int ext3_bg_has_super(struct supe +@@ -727,7 +736,8 @@ extern int ext3_bg_has_super(struct supe extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks_sb (handle_t *, struct super_block *, unsigned long, unsigned long, int *); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -360,7 +361,7 @@ Index: linux-2.6.12.6-bull/fs/ext3/mballoc.c =================================================================== --- linux-2.6.12.6-bull.orig/fs/ext3/mballoc.c 2006-04-22 17:31:47.543334750 +0400 +++ linux-2.6.12.6-bull/fs/ext3/mballoc.c 2006-04-30 01:24:11.000000000 +0400 -@@ -0,0 +1,2729 @@ +@@ -0,0 +1,2725 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -556,11 +557,7 @@ Index: linux-2.6.12.6-bull/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); +struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + diff --git a/lustre/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch b/lustre/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch index 2a4e19b..4512098 100644 --- a/lustre/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch +++ b/lustre/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch @@ -40,12 +40,13 @@ Index: linux-2.6.9-full/include/linux/ext3_fs.h /* * Maximal mount counts between two filesystem checks */ -@@ -726,7 +743,7 @@ extern int ext3_bg_has_super(struct supe +@@ -726,7 +743,8 @@ extern int ext3_bg_has_super(struct supe extern unsigned long ext3_bg_num_gdb(struct super_block *sb, int group); extern int ext3_new_block (handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks (handle_t *, struct inode *, unsigned long, - unsigned long); + unsigned long, int); ++extern int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); extern void ext3_free_blocks_sb (handle_t *, struct super_block *, unsigned long, unsigned long, int *); extern unsigned long ext3_count_free_blocks (struct super_block *); @@ -379,7 +380,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c =================================================================== --- linux-2.6.9-full.orig/fs/ext3/mballoc.c 2006-10-23 18:07:54.821533176 +0400 +++ linux-2.6.9-full/fs/ext3/mballoc.c 2006-10-24 13:00:56.000000000 +0400 -@@ -0,0 +1,2729 @@ +@@ -0,0 +1,2725 @@ +/* + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com + * Written by Alex Tomas @@ -575,11 +576,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c + +static struct proc_dir_entry *proc_root_ext3; + -+int ext3_create (struct inode *, struct dentry *, int, struct nameidata *); +struct buffer_head * read_block_bitmap(struct super_block *, unsigned int); -+int ext3_new_block_old(handle_t *, struct inode *, unsigned long, int *); -+int ext3_mb_reserve_blocks(struct super_block *, int); -+void ext3_mb_release_blocks(struct super_block *, int); +void ext3_mb_poll_new_transaction(struct super_block *, handle_t *); +void ext3_mb_free_committed_blocks(struct super_block *); + diff --git a/lustre/kernel_patches/series/ldiskfs2-2.6-sles10.series b/lustre/kernel_patches/series/ldiskfs2-2.6-sles10.series index 11f62b0..3c7197b 100644 --- a/lustre/kernel_patches/series/ldiskfs2-2.6-sles10.series +++ b/lustre/kernel_patches/series/ldiskfs2-2.6-sles10.series @@ -5,10 +5,15 @@ ext3-map_inode_page-2.6-suse.patch export-ext3-2.6-rhel4.patch ext3-include-fixes-2.6-rhel4.patch ext3-extents-2.6.16-sles10.patch -ext3-mballoc2-2.6-fc5.patch +ext3-extents-fixes-2.6.9-rhel4.patch +ext3-extents-multiblock-directio-2.6.9-rhel4.patch +ext3-extents-search-2.6.9-rhel4.patch +ext3-mballoc3-core.patch +ext3-mballoc3-sles10.patch ext3-nlinks-2.6.9.patch ext3-ialloc-2.6.patch ext3-remove-cond_resched-calls-2.6.12.patch -ext3-filterdata-2.6.15.patch +ext3-filterdata-sles10.patch ext3-disable-write-bar-by-default-2.6-sles10.patch +ext3-uninit-2.6-sles10.patch ext3-nanosecond-2.6-sles10.patch -- 1.8.3.1