Whamcloud - gitweb
Branch HEAD
authoradilger <adilger>
Thu, 15 Feb 2007 00:23:02 +0000 (00:23 +0000)
committeradilger <adilger>
Thu, 15 Feb 2007 00:23:02 +0000 (00:23 +0000)
Some minor cleanups to make extents, mballoc kernel patches the same.
Use ext3_fsblk_t as appropriate for 2.6.18.
b=11675

ldiskfs/kernel_patches/patches/ext3-extents-2.6.18-vanilla.patch
ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch
ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.12.patch
ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.18-vanilla.patch
ldiskfs/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch
lustre/kernel_patches/patches/ext3-extents-2.6.18-vanilla.patch
lustre/kernel_patches/patches/ext3-mballoc2-2.6-fc5.patch
lustre/kernel_patches/patches/ext3-mballoc2-2.6.12.patch
lustre/kernel_patches/patches/ext3-mballoc2-2.6.18-vanilla.patch
lustre/kernel_patches/patches/ext3-mballoc2-2.6.9-rhel4.patch

index 8bd7acb..7bc712e 100644 (file)
@@ -2641,12 +2641,13 @@ Index: linux-stage/include/linux/ext3_fs.h
  #define EXT3_FEATURE_RO_COMPAT_SUPP   (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
                                         EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
                                         EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
-@@ -787,6 +795,8 @@ extern unsigned long ext3_count_free (st
+@@ -787,6 +795,9 @@ extern unsigned long ext3_count_free (st
  
  
  /* inode.c */
 +extern int ext3_block_truncate_page(handle_t *, struct page *,
 +                                      struct address_space *, loff_t);
++extern int ext3_writepage_trans_blocks(struct inode *inode);
  int ext3_forget(handle_t *handle, int is_metadata, struct inode *inode,
                struct buffer_head *bh, ext3_fsblk_t blocknr);
  struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *);
index 6c1a3eb..07ce289 100644 (file)
@@ -17,7 +17,7 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs.h
  /*
   * Special inodes numbers
   */
-@@ -383,6 +391,7 @@
+@@ -383,6 +391,7 @@ struct ext3_inode {
  #define EXT3_MOUNT_IOPEN_NOPRIV               0x800000/* Make iopen world-readable */
  #define EXT3_MOUNT_EXTENTS            0x1000000/* Extents support */
  #define EXT3_MOUNT_EXTDEBUG           0x2000000/* Extents debug */
@@ -86,7 +86,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 @@
+@@ -78,6 +84,43 @@ struct ext3_sb_info {
        char *s_qf_names[MAXQUOTAS];            /* Names of quota files with journalled quota */
        int s_jquota_fmt;                       /* Format of quota to use */
  #endif
@@ -134,7 +134,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 @@
+@@ -392,6 +392,7 @@ static void ext3_put_super (struct super
        struct ext3_super_block *es = sbi->s_es;
        int i;
  
@@ -142,7 +142,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 @@
+@@ -640,6 +641,7 @@ enum {
        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 +150,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c
        Opt_grpquota
  };
  
-@@ -694,6 +695,9 @@
+@@ -694,6 +695,9 @@ static match_table_t tokens = {
        {Opt_extents, "extents"},
        {Opt_noextents, "noextents"},
        {Opt_extdebug, "extdebug"},
@@ -160,7 +160,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 @@
+@@ -1041,6 +1043,19 @@ clear_qf_name:
                case Opt_extdebug:
                        set_opt (sbi->s_mount_opt, EXTDEBUG);
                        break;
@@ -180,7 +180,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 @@
+@@ -1766,6 +1771,7 @@ static int ext3_fill_super (struct super
                ext3_count_dirs(sb));
  
        ext3_ext_init(sb);
@@ -188,7 +188,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c
        lock_kernel();
        return 0;
  
-@@ -2699,7 +2705,13 @@
+@@ -2699,7 +2705,13 @@ static struct file_system_type ext3_fs_t
  
  static int __init init_ext3_fs(void)
  {
@@ -203,7 +203,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c
        if (err)
                return err;
        err = init_inodecache();
-@@ -2721,6 +2733,7 @@
+@@ -2721,6 +2733,7 @@ static void __exit exit_ext3_fs(void)
        unregister_filesystem(&ext3_fs_type);
        destroy_inodecache();
        exit_ext3_xattr();
@@ -215,7 +215,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 @@
+@@ -771,7 +771,7 @@ cleanup:
                for (i = 0; i < depth; i++) {
                        if (!ablocks[i])
                                continue;
@@ -224,7 +224,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c
                }
        }
        kfree(ablocks);
-@@ -1428,7 +1428,7 @@
+@@ -1428,7 +1428,7 @@ int ext3_ext_rm_idx(handle_t *handle, st
                  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 +233,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c
        return err;
  }
  
-@@ -1913,10 +1913,12 @@
+@@ -1913,10 +1913,12 @@ ext3_remove_blocks(struct ext3_extents_t
        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 +247,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 @@
+@@ -1928,7 +1930,7 @@ ext3_remove_blocks(struct ext3_extents_t
                        bh = sb_find_get_block(tree->inode->i_sb, start + i);
                        ext3_forget(handle, 0, tree->inode, bh, start + i);
                }
@@ -260,7 +260,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 @@
+@@ -568,7 +568,7 @@ failed:
                ext3_journal_forget(handle, branch[i].bh);
        }
        for (i = 0; i < keys; i++)
@@ -269,7 +269,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c
        return err;
  }
  
-@@ -1862,7 +1862,7 @@
+@@ -1862,7 +1862,7 @@ static void ext3_clear_blocks(handle_t *
                }
        }
  
@@ -278,7 +278,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c
  }
  
  /**
-@@ -2035,7 +2035,7 @@
+@@ -2035,7 +2035,7 @@ static void ext3_free_branches(handle_t 
                                ext3_journal_test_restart(handle, inode);
                        }
  
@@ -291,7 +291,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 @@
+@@ -80,7 +80,7 @@ struct ext3_group_desc * ext3_get_group_
   *
   * Return buffer_head on success or NULL in case of failure.
   */
@@ -300,7 +300,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 @@
+@@ -491,24 +491,6 @@ error_return:
        return;
  }
  
@@ -325,7 +325,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 @@
+@@ -1154,7 +1136,7 @@ out:
   * bitmap, and then for any free bit if that fails.
   * This function also updates quota and i_blocks field.
   */
@@ -338,7 +338,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 @@
+@@ -484,7 +484,7 @@ ext3_xattr_release_block(handle_t *handl
                ea_bdebug(bh, "refcount now=0; freeing");
                if (ce)
                        mb_cache_entry_free(ce);
@@ -347,7 +347,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 @@
+@@ -804,7 +804,7 @@ inserted:
                        new_bh = sb_getblk(sb, block);
                        if (!new_bh) {
  getblk_failed:
@@ -468,7 +468,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 +504,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;
@@ -1565,11 +1565,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 +2918,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 +2957,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 +2996,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 +3094,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 @@
+@@ -6,7 +6,7 @@ obj-$(CONFIG_EXT3_FS) += ext3.o
  
  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 \
index d4d0a05..7aaf8cd 100644 (file)
@@ -25,7 +25,7 @@ Index: linux-2.6.12.6-bull/include/linux/ext3_fs.h
  
  /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
  #ifndef clear_opt
-@@ -387,6 +396,14 @@
+@@ -387,6 +396,14 @@ struct ext3_inode {
  #define ext3_find_first_zero_bit      ext2_find_first_zero_bit
  #define ext3_find_next_zero_bit               ext2_find_next_zero_bit
  
@@ -468,7 +468,7 @@ Index: linux-2.6.12.6-bull/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 +504,7 @@ Index: linux-2.6.12.6-bull/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;
@@ -1565,11 +1565,11 @@ Index: linux-2.6.12.6-bull/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 +2918,7 @@ Index: linux-2.6.12.6-bull/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 +2957,7 @@ Index: linux-2.6.12.6-bull/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 +2996,7 @@ Index: linux-2.6.12.6-bull/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_order2_reqs = value;    
++      ext3_mb_order2_reqs = value;
 +
 +      return count;
 +}
index d83625a..702dfcc 100644 (file)
@@ -65,7 +65,7 @@ Index: linux-stage/include/linux/ext3_fs.h
 +extern int ext3_mb_init(struct super_block *sb, int needs_recovery);
 +extern int ext3_mb_release(struct super_block *sb);
 +extern ext3_fsblk_t ext3_new_block(handle_t *handle, struct inode *inode,
-+                                 ext3_fsblk_t goal, int *errp);
++                                 ext3_fsblk_t goal, int *errp);
 +extern ext3_fsblk_t ext3_mb_new_blocks(handle_t *handle, struct inode *inode,
 +                                     ext3_fsblk_t goal, int *len, int flags,
 +                                     int *errp);
@@ -175,7 +175,7 @@ Index: linux-stage/fs/ext3/super.c
                        set_opt (sbi->s_mount_opt, EXTDEBUG);
                        break;
 +              case Opt_mballoc:
-+                      set_opt (sbi->s_mount_opt, MBALLOC);
++                      set_opt(sbi->s_mount_opt, MBALLOC);
 +                      break;
 +              case Opt_nomballoc:
 +                      clear_opt(sbi->s_mount_opt, MBALLOC);
@@ -394,7 +394,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
 +++ linux-stage/fs/ext3/mballoc.c      2006-07-16 02:29:49.000000000 +0800
-@@ -0,0 +1,2727 @@
+@@ -0,0 +1,2730 @@
 +/*
 + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com
 + * Written by Alex Tomas <alex@clusterfs.com>
@@ -502,7 +502,7 @@ Index: linux-stage/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;
@@ -528,17 +528,17 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +      /* search goals */
 +      struct ext3_free_extent ac_g_ex;
-+      
++
 +      /* the best found extent */
 +      struct ext3_free_extent ac_b_ex;
-+      
++
 +      /* number of iterations done. we have to track to limit searching */
 +      unsigned long ac_ex_scanned;
 +      __u16 ac_groups_scanned;
 +      __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;
@@ -700,7 +700,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              if (mb_check_counter++ % 300 != 0)
 +                      return;
 +      }
-+      
++
 +      while (order > 1) {
 +              buddy = mb_find_buddy(e3b, order, &max);
 +              J_ASSERT(buddy);
@@ -841,7 +841,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              i = ext2_find_next_le_bit(bitmap, max, i);
 +              len = i - first;
 +              free += len;
-+              if (len > 1) 
++              if (len > 1)
 +                      ext3_mb_mark_free_simple(sb, buddy, first, len, grp);
 +              else
 +                      grp->bb_counters[0]++;
@@ -882,7 +882,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      sb = inode->i_sb;
 +      blocksize = 1 << inode->i_blkbits;
 +      blocks_per_page = PAGE_CACHE_SIZE / blocksize;
-+      
++
 +      groups_per_page = blocks_per_page >> 1;
 +      if (groups_per_page == 0)
 +              groups_per_page = 1;
@@ -897,9 +897,9 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              memset(bh, 0, i);
 +      } else
 +              bh = &bhs;
-+      
++
 +      first_group = page->index * blocks_per_page / 2;
-+      
++
 +      /* read all groups the page covers into the cache */
 +      for (i = 0; i < groups_per_page; i++) {
 +              struct ext3_group_desc * desc;
@@ -959,7 +959,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +                      memset(data, 0xff, blocksize);
 +                      EXT3_GROUP_INFO(sb, group)->bb_fragments = 0;
 +                      memset(EXT3_GROUP_INFO(sb, group)->bb_counters, 0,
-+                              sizeof(unsigned short)*(sb->s_blocksize_bits+2));
++                             sizeof(unsigned short)*(sb->s_blocksize_bits+2));
 +                      ext3_mb_generate_buddy(sb, data, bitmap, group);
 +              } else {
 +                      /* this is block of bitmap */
@@ -1442,7 +1442,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +      ext3_lock_group(ac->ac_sb, group);
 +      max = mb_find_extent(e3b, 0, ex.fe_start, ex.fe_len, &ex);
-+      
++
 +      if (max > 0) {
 +              ac->ac_b_ex = ex;
 +              ext3_mb_use_best_found(ac, e3b);
@@ -1469,10 +1469,10 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +      ext3_lock_group(ac->ac_sb, group);
 +      max = mb_find_extent(e3b, 0, ac->ac_g_ex.fe_start,
-+                              ac->ac_g_ex.fe_len, &ex);
-+      
++                           ac->ac_g_ex.fe_len, &ex);
++
 +      if (max >= ac->ac_g_ex.fe_len && ac->ac_g_ex.fe_len == sbi->s_stripe) {
-+              unsigned long start;
++              ext3_fsblk_t start;
 +              start = (e3b->bd_group * EXT3_BLOCKS_PER_GROUP(ac->ac_sb) +
 +                      ex.fe_start + le32_to_cpu(es->s_first_data_block));
 +              if (start % sbi->s_stripe == 0) {
@@ -1535,7 +1535,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              ac->ac_b_ex.fe_len = 1 << i;
 +              ac->ac_b_ex.fe_start = k << i;
 +              ac->ac_b_ex.fe_group = e3b->bd_group;
-+              
++
 +              ext3_mb_use_best_found(ac, e3b);
 +              J_ASSERT(ac->ac_b_ex.fe_len == ac->ac_g_ex.fe_len);
 +
@@ -1593,16 +1593,16 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      struct ext3_sb_info *sbi = EXT3_SB(sb);
 +      void *bitmap = EXT3_MB_BITMAP(e3b);
 +      struct ext3_free_extent ex;
-+      unsigned long i, max;
++      ext3_fsblk_t i, max;
 +
 +      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)) {
@@ -1659,18 +1659,19 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      return 0;
 +}
 +
-+int ext3_mb_new_blocks(handle_t *handle, struct inode *inode,
-+                     unsigned long goal, int *len, int flags, int *errp)
++ext3_fsblk_t ext3_mb_new_blocks(handle_t *handle, struct inode *inode,
++                              ext3_fsblk_t goal, int *len,int flags,int *errp)
 +{
 +      struct buffer_head *bitmap_bh = NULL;
 +      struct ext3_allocation_context ac;
-+      int i, group, block, cr, err = 0;
++      int i, group, cr, err = 0;
 +      struct ext3_group_desc *gdp;
 +      struct ext3_super_block *es;
 +      struct buffer_head *gdp_bh;
 +      struct ext3_sb_info *sbi;
 +      struct super_block *sb;
 +      struct ext3_buddy e3b;
++      ext3_fsblk_t block;
 +
 +      J_ASSERT(len != NULL);
 +      J_ASSERT(*len > 0);
@@ -1792,7 +1793,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +                                      goto out_err;
 +                              ext3_mb_release_desc(&e3b);
 +                      }
-+                              
++
 +                      /* check is group good for our criteries */
 +                      if (!ext3_mb_good_group(&ac, group, cr))
 +                              continue;
@@ -1827,7 +1828,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      }
 +
 +      if (ac.ac_b_ex.fe_len > 0 && ac.ac_status != AC_STATUS_FOUND &&
-+                      !(ac.ac_flags & EXT3_MB_HINT_FIRST)) {
++          !(ac.ac_flags & EXT3_MB_HINT_FIRST)) {
 +              /*
 +               * We've been searching too long. Let's try to allocate
 +               * the best chunk we've found so far
@@ -1910,7 +1911,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              *errp = -EIO;
 +              goto out_err;
 +      }
-+      
++
 +      err = ext3_journal_get_write_access(handle, gdp_bh);
 +      if (err)
 +              goto out_err;
@@ -1925,7 +1926,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +                    EXT3_SB(sb)->s_itb_per_group))
 +              ext3_error(sb, "ext3_new_block",
 +                          "Allocating block in system zone - "
-+                          "block = %u", block);
++                          "block = "E3FSBLK, block);
 +#ifdef AGGRESSIVE_CHECK
 +      for (i = 0; i < ac.ac_b_ex.fe_len; i++)
 +              J_ASSERT(!mb_test_bit(ac.ac_b_ex.fe_start + i, bitmap_bh->b_data));
@@ -1984,7 +1985,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +               * path only, here is single block always */
 +              ext3_mb_release_blocks(sb, 1);
 +      }
-+      
++
 +      if (unlikely(ext3_mb_stats) && ac.ac_g_ex.fe_len > 1) {
 +              atomic_inc(&sbi->s_bal_reqs);
 +              atomic_add(*len, &sbi->s_bal_allocated);
@@ -2113,7 +2114,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      s->max = sbi->s_mb_history_max;
 +      s->start = sbi->s_mb_history_cur % s->max;
 +      spin_unlock(&sbi->s_mb_history_lock);
-+      
++
 +      rc = seq_open(file, &ext3_mb_seq_history_ops);
 +      if (rc == 0) {
 +              struct seq_file *m = (struct seq_file *)file->private_data;
@@ -2137,10 +2138,10 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +static struct file_operations ext3_mb_seq_history_fops = {
 +      .owner          = THIS_MODULE,
-+      .open           = ext3_mb_seq_history_open,
-+      .read           = seq_read,
-+      .llseek         = seq_lseek,
-+      .release        = ext3_mb_seq_history_release,
++      .open           = ext3_mb_seq_history_open,
++      .read           = seq_read,
++      .llseek         = seq_lseek,
++      .release        = ext3_mb_seq_history_release,
 +};
 +
 +static void *ext3_mb_seq_groups_start(struct seq_file *seq, loff_t *pos)
@@ -2357,7 +2358,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              sbi->s_group_info[i] = meta_group_info;
 +      }
 +
-+      /* 
++      /*
 +       * calculate needed size. if change bb_counters size,
 +       * don't forget about ext3_mb_generate_buddy()
 +       */
@@ -2480,7 +2481,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +{
 +      struct ext3_sb_info *sbi = EXT3_SB(sb);
 +      int i, num_meta_group_infos;
-+      
++
 +      if (!test_opt(sb, MBALLOC))
 +              return 0;
 +
@@ -2679,8 +2680,8 @@ Index: linux-stage/fs/ext3/mballoc.c
 +}
 +
 +void ext3_mb_free_blocks(handle_t *handle, struct inode *inode,
-+                      unsigned long block, unsigned long count,
-+                      int metadata, int *freed)
++                      ext3_fsblk_t block, unsigned long count,
++                      int metadata, unsigned long *freed)
 +{
 +      struct buffer_head *bitmap_bh = NULL;
 +      struct ext3_group_desc *gdp;
@@ -2784,7 +2785,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              /* blocks being freed are metadata. these blocks shouldn't
 +               * be used until this transaction is committed */
 +              ext3_mb_free_metadata(handle, &e3b, block_group, bit, count);
-+      } else { 
++      } else {
 +              ext3_lock_group(sb, block_group);
 +              mb_free_blocks(&e3b, bit, count);
 +              ext3_unlock_group(sb, block_group);
@@ -2795,7 +2796,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              cpu_to_le16(le16_to_cpu(gdp->bg_free_blocks_count) + count);
 +      spin_unlock(sb_bgl_lock(sbi, block_group));
 +      percpu_counter_mod(&sbi->s_freeblocks_counter, count);
-+      
++
 +      ext3_mb_release_desc(&e3b);
 +
 +      *freed = count;
@@ -2846,10 +2847,11 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      spin_unlock(&sbi->s_reserve_lock);
 +}
 +
-+int ext3_new_block(handle_t *handle, struct inode *inode,
-+              unsigned long goal, int *errp)
++ext3_fsblk_t ext3_new_block(handle_t *handle, struct inode *inode,
++                          ext3_fsblk_t goal, int *errp)
 +{
-+      int ret, len;
++      ext3_fsblk_t ret;
++      int len;
 +
 +      if (!test_opt(inode->i_sb, MBALLOC)) {
 +              ret = ext3_new_block_old(handle, inode, goal, errp);
@@ -2862,23 +2864,24 @@ Index: linux-stage/fs/ext3/mballoc.c
 +}
 +
 +void ext3_free_blocks(handle_t *handle, struct inode * inode,
-+                      unsigned long block, unsigned long count, int metadata)
++                    ext3_fsblk_t block, unsigned long count, int metadata)
 +{
 +      struct super_block *sb;
-+      int freed;
++      unsigned long freed;
 +
 +      sb = inode->i_sb;
 +      if (!test_opt(sb, MBALLOC) || !EXT3_SB(sb)->s_group_info)
 +              ext3_free_blocks_sb(handle, sb, block, count, &freed);
 +      else
-+              ext3_mb_free_blocks(handle, inode, block, count, metadata, &freed);
++              ext3_mb_free_blocks(handle, inode, block, count, metadata,
++                                  &freed);
 +      if (freed)
 +              DQUOT_FREE_BLOCK(inode, freed);
 +      return;
 +}
 +
-+#define EXT3_ROOT                 "ext3"
-+#define EXT3_MB_STATS_NAME        "mb_stats"
++#define EXT3_ROOT                "ext3"
++#define EXT3_MB_STATS_NAME       "mb_stats"
 +#define EXT3_MB_MAX_TO_SCAN_NAME  "mb_max_to_scan"
 +#define EXT3_MB_MIN_TO_SCAN_NAME  "mb_min_to_scan"
 +#define EXT3_MB_ORDER2_REQ       "mb_order2_req"
@@ -2950,7 +2953,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_max_to_scan = value;    
++      ext3_mb_max_to_scan = value;
 +
 +      return count;
 +}
@@ -2989,7 +2992,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_min_to_scan = value;    
++      ext3_mb_min_to_scan = value;
 +
 +      return count;
 +}
@@ -3028,7 +3031,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_order2_reqs = value;    
++      ext3_mb_order2_reqs = value;
 +
 +      return count;
 +}
index 219822b..2a4e19b 100644 (file)
@@ -487,7 +487,7 @@ Index: linux-2.6.9-full/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;
@@ -523,7 +523,7 @@ Index: linux-2.6.9-full/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;
@@ -1584,11 +1584,11 @@ Index: linux-2.6.9-full/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)) {
@@ -2937,7 +2937,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_max_to_scan = value;    
++      ext3_mb_max_to_scan = value;
 +
 +      return count;
 +}
@@ -2976,7 +2976,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_min_to_scan = value;    
++      ext3_mb_min_to_scan = value;
 +
 +      return count;
 +}
@@ -3015,7 +3015,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_order2_reqs = value;    
++      ext3_mb_order2_reqs = value;
 +
 +      return count;
 +}
index 8bd7acb..7bc712e 100644 (file)
@@ -2641,12 +2641,13 @@ Index: linux-stage/include/linux/ext3_fs.h
  #define EXT3_FEATURE_RO_COMPAT_SUPP   (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
                                         EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
                                         EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
-@@ -787,6 +795,8 @@ extern unsigned long ext3_count_free (st
+@@ -787,6 +795,9 @@ extern unsigned long ext3_count_free (st
  
  
  /* inode.c */
 +extern int ext3_block_truncate_page(handle_t *, struct page *,
 +                                      struct address_space *, loff_t);
++extern int ext3_writepage_trans_blocks(struct inode *inode);
  int ext3_forget(handle_t *handle, int is_metadata, struct inode *inode,
                struct buffer_head *bh, ext3_fsblk_t blocknr);
  struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *);
index 6c1a3eb..07ce289 100644 (file)
@@ -17,7 +17,7 @@ Index: linux-2.6.16.i686/include/linux/ext3_fs.h
  /*
   * Special inodes numbers
   */
-@@ -383,6 +391,7 @@
+@@ -383,6 +391,7 @@ struct ext3_inode {
  #define EXT3_MOUNT_IOPEN_NOPRIV               0x800000/* Make iopen world-readable */
  #define EXT3_MOUNT_EXTENTS            0x1000000/* Extents support */
  #define EXT3_MOUNT_EXTDEBUG           0x2000000/* Extents debug */
@@ -86,7 +86,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 @@
+@@ -78,6 +84,43 @@ struct ext3_sb_info {
        char *s_qf_names[MAXQUOTAS];            /* Names of quota files with journalled quota */
        int s_jquota_fmt;                       /* Format of quota to use */
  #endif
@@ -134,7 +134,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 @@
+@@ -392,6 +392,7 @@ static void ext3_put_super (struct super
        struct ext3_super_block *es = sbi->s_es;
        int i;
  
@@ -142,7 +142,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 @@
+@@ -640,6 +641,7 @@ enum {
        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 +150,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c
        Opt_grpquota
  };
  
-@@ -694,6 +695,9 @@
+@@ -694,6 +695,9 @@ static match_table_t tokens = {
        {Opt_extents, "extents"},
        {Opt_noextents, "noextents"},
        {Opt_extdebug, "extdebug"},
@@ -160,7 +160,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 @@
+@@ -1041,6 +1043,19 @@ clear_qf_name:
                case Opt_extdebug:
                        set_opt (sbi->s_mount_opt, EXTDEBUG);
                        break;
@@ -180,7 +180,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 @@
+@@ -1766,6 +1771,7 @@ static int ext3_fill_super (struct super
                ext3_count_dirs(sb));
  
        ext3_ext_init(sb);
@@ -188,7 +188,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c
        lock_kernel();
        return 0;
  
-@@ -2699,7 +2705,13 @@
+@@ -2699,7 +2705,13 @@ static struct file_system_type ext3_fs_t
  
  static int __init init_ext3_fs(void)
  {
@@ -203,7 +203,7 @@ Index: linux-2.6.16.i686/fs/ext3/super.c
        if (err)
                return err;
        err = init_inodecache();
-@@ -2721,6 +2733,7 @@
+@@ -2721,6 +2733,7 @@ static void __exit exit_ext3_fs(void)
        unregister_filesystem(&ext3_fs_type);
        destroy_inodecache();
        exit_ext3_xattr();
@@ -215,7 +215,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 @@
+@@ -771,7 +771,7 @@ cleanup:
                for (i = 0; i < depth; i++) {
                        if (!ablocks[i])
                                continue;
@@ -224,7 +224,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c
                }
        }
        kfree(ablocks);
-@@ -1428,7 +1428,7 @@
+@@ -1428,7 +1428,7 @@ int ext3_ext_rm_idx(handle_t *handle, st
                  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 +233,7 @@ Index: linux-2.6.16.i686/fs/ext3/extents.c
        return err;
  }
  
-@@ -1913,10 +1913,12 @@
+@@ -1913,10 +1913,12 @@ ext3_remove_blocks(struct ext3_extents_t
        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 +247,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 @@
+@@ -1928,7 +1930,7 @@ ext3_remove_blocks(struct ext3_extents_t
                        bh = sb_find_get_block(tree->inode->i_sb, start + i);
                        ext3_forget(handle, 0, tree->inode, bh, start + i);
                }
@@ -260,7 +260,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 @@
+@@ -568,7 +568,7 @@ failed:
                ext3_journal_forget(handle, branch[i].bh);
        }
        for (i = 0; i < keys; i++)
@@ -269,7 +269,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c
        return err;
  }
  
-@@ -1862,7 +1862,7 @@
+@@ -1862,7 +1862,7 @@ static void ext3_clear_blocks(handle_t *
                }
        }
  
@@ -278,7 +278,7 @@ Index: linux-2.6.16.i686/fs/ext3/inode.c
  }
  
  /**
-@@ -2035,7 +2035,7 @@
+@@ -2035,7 +2035,7 @@ static void ext3_free_branches(handle_t 
                                ext3_journal_test_restart(handle, inode);
                        }
  
@@ -291,7 +291,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 @@
+@@ -80,7 +80,7 @@ struct ext3_group_desc * ext3_get_group_
   *
   * Return buffer_head on success or NULL in case of failure.
   */
@@ -300,7 +300,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 @@
+@@ -491,24 +491,6 @@ error_return:
        return;
  }
  
@@ -325,7 +325,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 @@
+@@ -1154,7 +1136,7 @@ out:
   * bitmap, and then for any free bit if that fails.
   * This function also updates quota and i_blocks field.
   */
@@ -338,7 +338,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 @@
+@@ -484,7 +484,7 @@ ext3_xattr_release_block(handle_t *handl
                ea_bdebug(bh, "refcount now=0; freeing");
                if (ce)
                        mb_cache_entry_free(ce);
@@ -347,7 +347,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 @@
+@@ -804,7 +804,7 @@ inserted:
                        new_bh = sb_getblk(sb, block);
                        if (!new_bh) {
  getblk_failed:
@@ -468,7 +468,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 +504,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;
@@ -1565,11 +1565,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 +2918,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 +2957,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 +2996,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 +3094,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 @@
+@@ -6,7 +6,7 @@ obj-$(CONFIG_EXT3_FS) += ext3.o
  
  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 \
index d4d0a05..7aaf8cd 100644 (file)
@@ -25,7 +25,7 @@ Index: linux-2.6.12.6-bull/include/linux/ext3_fs.h
  
  /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
  #ifndef clear_opt
-@@ -387,6 +396,14 @@
+@@ -387,6 +396,14 @@ struct ext3_inode {
  #define ext3_find_first_zero_bit      ext2_find_first_zero_bit
  #define ext3_find_next_zero_bit               ext2_find_next_zero_bit
  
@@ -468,7 +468,7 @@ Index: linux-2.6.12.6-bull/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 +504,7 @@ Index: linux-2.6.12.6-bull/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;
@@ -1565,11 +1565,11 @@ Index: linux-2.6.12.6-bull/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 +2918,7 @@ Index: linux-2.6.12.6-bull/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 +2957,7 @@ Index: linux-2.6.12.6-bull/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 +2996,7 @@ Index: linux-2.6.12.6-bull/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_order2_reqs = value;    
++      ext3_mb_order2_reqs = value;
 +
 +      return count;
 +}
index d83625a..702dfcc 100644 (file)
@@ -65,7 +65,7 @@ Index: linux-stage/include/linux/ext3_fs.h
 +extern int ext3_mb_init(struct super_block *sb, int needs_recovery);
 +extern int ext3_mb_release(struct super_block *sb);
 +extern ext3_fsblk_t ext3_new_block(handle_t *handle, struct inode *inode,
-+                                 ext3_fsblk_t goal, int *errp);
++                                 ext3_fsblk_t goal, int *errp);
 +extern ext3_fsblk_t ext3_mb_new_blocks(handle_t *handle, struct inode *inode,
 +                                     ext3_fsblk_t goal, int *len, int flags,
 +                                     int *errp);
@@ -175,7 +175,7 @@ Index: linux-stage/fs/ext3/super.c
                        set_opt (sbi->s_mount_opt, EXTDEBUG);
                        break;
 +              case Opt_mballoc:
-+                      set_opt (sbi->s_mount_opt, MBALLOC);
++                      set_opt(sbi->s_mount_opt, MBALLOC);
 +                      break;
 +              case Opt_nomballoc:
 +                      clear_opt(sbi->s_mount_opt, MBALLOC);
@@ -394,7 +394,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
 +++ linux-stage/fs/ext3/mballoc.c      2006-07-16 02:29:49.000000000 +0800
-@@ -0,0 +1,2727 @@
+@@ -0,0 +1,2730 @@
 +/*
 + * Copyright (c) 2003-2005, Cluster File Systems, Inc, info@clusterfs.com
 + * Written by Alex Tomas <alex@clusterfs.com>
@@ -502,7 +502,7 @@ Index: linux-stage/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;
@@ -528,17 +528,17 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +      /* search goals */
 +      struct ext3_free_extent ac_g_ex;
-+      
++
 +      /* the best found extent */
 +      struct ext3_free_extent ac_b_ex;
-+      
++
 +      /* number of iterations done. we have to track to limit searching */
 +      unsigned long ac_ex_scanned;
 +      __u16 ac_groups_scanned;
 +      __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;
@@ -700,7 +700,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              if (mb_check_counter++ % 300 != 0)
 +                      return;
 +      }
-+      
++
 +      while (order > 1) {
 +              buddy = mb_find_buddy(e3b, order, &max);
 +              J_ASSERT(buddy);
@@ -841,7 +841,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              i = ext2_find_next_le_bit(bitmap, max, i);
 +              len = i - first;
 +              free += len;
-+              if (len > 1) 
++              if (len > 1)
 +                      ext3_mb_mark_free_simple(sb, buddy, first, len, grp);
 +              else
 +                      grp->bb_counters[0]++;
@@ -882,7 +882,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      sb = inode->i_sb;
 +      blocksize = 1 << inode->i_blkbits;
 +      blocks_per_page = PAGE_CACHE_SIZE / blocksize;
-+      
++
 +      groups_per_page = blocks_per_page >> 1;
 +      if (groups_per_page == 0)
 +              groups_per_page = 1;
@@ -897,9 +897,9 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              memset(bh, 0, i);
 +      } else
 +              bh = &bhs;
-+      
++
 +      first_group = page->index * blocks_per_page / 2;
-+      
++
 +      /* read all groups the page covers into the cache */
 +      for (i = 0; i < groups_per_page; i++) {
 +              struct ext3_group_desc * desc;
@@ -959,7 +959,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +                      memset(data, 0xff, blocksize);
 +                      EXT3_GROUP_INFO(sb, group)->bb_fragments = 0;
 +                      memset(EXT3_GROUP_INFO(sb, group)->bb_counters, 0,
-+                              sizeof(unsigned short)*(sb->s_blocksize_bits+2));
++                             sizeof(unsigned short)*(sb->s_blocksize_bits+2));
 +                      ext3_mb_generate_buddy(sb, data, bitmap, group);
 +              } else {
 +                      /* this is block of bitmap */
@@ -1442,7 +1442,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +      ext3_lock_group(ac->ac_sb, group);
 +      max = mb_find_extent(e3b, 0, ex.fe_start, ex.fe_len, &ex);
-+      
++
 +      if (max > 0) {
 +              ac->ac_b_ex = ex;
 +              ext3_mb_use_best_found(ac, e3b);
@@ -1469,10 +1469,10 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +      ext3_lock_group(ac->ac_sb, group);
 +      max = mb_find_extent(e3b, 0, ac->ac_g_ex.fe_start,
-+                              ac->ac_g_ex.fe_len, &ex);
-+      
++                           ac->ac_g_ex.fe_len, &ex);
++
 +      if (max >= ac->ac_g_ex.fe_len && ac->ac_g_ex.fe_len == sbi->s_stripe) {
-+              unsigned long start;
++              ext3_fsblk_t start;
 +              start = (e3b->bd_group * EXT3_BLOCKS_PER_GROUP(ac->ac_sb) +
 +                      ex.fe_start + le32_to_cpu(es->s_first_data_block));
 +              if (start % sbi->s_stripe == 0) {
@@ -1535,7 +1535,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              ac->ac_b_ex.fe_len = 1 << i;
 +              ac->ac_b_ex.fe_start = k << i;
 +              ac->ac_b_ex.fe_group = e3b->bd_group;
-+              
++
 +              ext3_mb_use_best_found(ac, e3b);
 +              J_ASSERT(ac->ac_b_ex.fe_len == ac->ac_g_ex.fe_len);
 +
@@ -1593,16 +1593,16 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      struct ext3_sb_info *sbi = EXT3_SB(sb);
 +      void *bitmap = EXT3_MB_BITMAP(e3b);
 +      struct ext3_free_extent ex;
-+      unsigned long i, max;
++      ext3_fsblk_t i, max;
 +
 +      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)) {
@@ -1659,18 +1659,19 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      return 0;
 +}
 +
-+int ext3_mb_new_blocks(handle_t *handle, struct inode *inode,
-+                     unsigned long goal, int *len, int flags, int *errp)
++ext3_fsblk_t ext3_mb_new_blocks(handle_t *handle, struct inode *inode,
++                              ext3_fsblk_t goal, int *len,int flags,int *errp)
 +{
 +      struct buffer_head *bitmap_bh = NULL;
 +      struct ext3_allocation_context ac;
-+      int i, group, block, cr, err = 0;
++      int i, group, cr, err = 0;
 +      struct ext3_group_desc *gdp;
 +      struct ext3_super_block *es;
 +      struct buffer_head *gdp_bh;
 +      struct ext3_sb_info *sbi;
 +      struct super_block *sb;
 +      struct ext3_buddy e3b;
++      ext3_fsblk_t block;
 +
 +      J_ASSERT(len != NULL);
 +      J_ASSERT(*len > 0);
@@ -1792,7 +1793,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +                                      goto out_err;
 +                              ext3_mb_release_desc(&e3b);
 +                      }
-+                              
++
 +                      /* check is group good for our criteries */
 +                      if (!ext3_mb_good_group(&ac, group, cr))
 +                              continue;
@@ -1827,7 +1828,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      }
 +
 +      if (ac.ac_b_ex.fe_len > 0 && ac.ac_status != AC_STATUS_FOUND &&
-+                      !(ac.ac_flags & EXT3_MB_HINT_FIRST)) {
++          !(ac.ac_flags & EXT3_MB_HINT_FIRST)) {
 +              /*
 +               * We've been searching too long. Let's try to allocate
 +               * the best chunk we've found so far
@@ -1910,7 +1911,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              *errp = -EIO;
 +              goto out_err;
 +      }
-+      
++
 +      err = ext3_journal_get_write_access(handle, gdp_bh);
 +      if (err)
 +              goto out_err;
@@ -1925,7 +1926,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +                    EXT3_SB(sb)->s_itb_per_group))
 +              ext3_error(sb, "ext3_new_block",
 +                          "Allocating block in system zone - "
-+                          "block = %u", block);
++                          "block = "E3FSBLK, block);
 +#ifdef AGGRESSIVE_CHECK
 +      for (i = 0; i < ac.ac_b_ex.fe_len; i++)
 +              J_ASSERT(!mb_test_bit(ac.ac_b_ex.fe_start + i, bitmap_bh->b_data));
@@ -1984,7 +1985,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +               * path only, here is single block always */
 +              ext3_mb_release_blocks(sb, 1);
 +      }
-+      
++
 +      if (unlikely(ext3_mb_stats) && ac.ac_g_ex.fe_len > 1) {
 +              atomic_inc(&sbi->s_bal_reqs);
 +              atomic_add(*len, &sbi->s_bal_allocated);
@@ -2113,7 +2114,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      s->max = sbi->s_mb_history_max;
 +      s->start = sbi->s_mb_history_cur % s->max;
 +      spin_unlock(&sbi->s_mb_history_lock);
-+      
++
 +      rc = seq_open(file, &ext3_mb_seq_history_ops);
 +      if (rc == 0) {
 +              struct seq_file *m = (struct seq_file *)file->private_data;
@@ -2137,10 +2138,10 @@ Index: linux-stage/fs/ext3/mballoc.c
 +
 +static struct file_operations ext3_mb_seq_history_fops = {
 +      .owner          = THIS_MODULE,
-+      .open           = ext3_mb_seq_history_open,
-+      .read           = seq_read,
-+      .llseek         = seq_lseek,
-+      .release        = ext3_mb_seq_history_release,
++      .open           = ext3_mb_seq_history_open,
++      .read           = seq_read,
++      .llseek         = seq_lseek,
++      .release        = ext3_mb_seq_history_release,
 +};
 +
 +static void *ext3_mb_seq_groups_start(struct seq_file *seq, loff_t *pos)
@@ -2357,7 +2358,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              sbi->s_group_info[i] = meta_group_info;
 +      }
 +
-+      /* 
++      /*
 +       * calculate needed size. if change bb_counters size,
 +       * don't forget about ext3_mb_generate_buddy()
 +       */
@@ -2480,7 +2481,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +{
 +      struct ext3_sb_info *sbi = EXT3_SB(sb);
 +      int i, num_meta_group_infos;
-+      
++
 +      if (!test_opt(sb, MBALLOC))
 +              return 0;
 +
@@ -2679,8 +2680,8 @@ Index: linux-stage/fs/ext3/mballoc.c
 +}
 +
 +void ext3_mb_free_blocks(handle_t *handle, struct inode *inode,
-+                      unsigned long block, unsigned long count,
-+                      int metadata, int *freed)
++                      ext3_fsblk_t block, unsigned long count,
++                      int metadata, unsigned long *freed)
 +{
 +      struct buffer_head *bitmap_bh = NULL;
 +      struct ext3_group_desc *gdp;
@@ -2784,7 +2785,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              /* blocks being freed are metadata. these blocks shouldn't
 +               * be used until this transaction is committed */
 +              ext3_mb_free_metadata(handle, &e3b, block_group, bit, count);
-+      } else { 
++      } else {
 +              ext3_lock_group(sb, block_group);
 +              mb_free_blocks(&e3b, bit, count);
 +              ext3_unlock_group(sb, block_group);
@@ -2795,7 +2796,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +              cpu_to_le16(le16_to_cpu(gdp->bg_free_blocks_count) + count);
 +      spin_unlock(sb_bgl_lock(sbi, block_group));
 +      percpu_counter_mod(&sbi->s_freeblocks_counter, count);
-+      
++
 +      ext3_mb_release_desc(&e3b);
 +
 +      *freed = count;
@@ -2846,10 +2847,11 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      spin_unlock(&sbi->s_reserve_lock);
 +}
 +
-+int ext3_new_block(handle_t *handle, struct inode *inode,
-+              unsigned long goal, int *errp)
++ext3_fsblk_t ext3_new_block(handle_t *handle, struct inode *inode,
++                          ext3_fsblk_t goal, int *errp)
 +{
-+      int ret, len;
++      ext3_fsblk_t ret;
++      int len;
 +
 +      if (!test_opt(inode->i_sb, MBALLOC)) {
 +              ret = ext3_new_block_old(handle, inode, goal, errp);
@@ -2862,23 +2864,24 @@ Index: linux-stage/fs/ext3/mballoc.c
 +}
 +
 +void ext3_free_blocks(handle_t *handle, struct inode * inode,
-+                      unsigned long block, unsigned long count, int metadata)
++                    ext3_fsblk_t block, unsigned long count, int metadata)
 +{
 +      struct super_block *sb;
-+      int freed;
++      unsigned long freed;
 +
 +      sb = inode->i_sb;
 +      if (!test_opt(sb, MBALLOC) || !EXT3_SB(sb)->s_group_info)
 +              ext3_free_blocks_sb(handle, sb, block, count, &freed);
 +      else
-+              ext3_mb_free_blocks(handle, inode, block, count, metadata, &freed);
++              ext3_mb_free_blocks(handle, inode, block, count, metadata,
++                                  &freed);
 +      if (freed)
 +              DQUOT_FREE_BLOCK(inode, freed);
 +      return;
 +}
 +
-+#define EXT3_ROOT                 "ext3"
-+#define EXT3_MB_STATS_NAME        "mb_stats"
++#define EXT3_ROOT                "ext3"
++#define EXT3_MB_STATS_NAME       "mb_stats"
 +#define EXT3_MB_MAX_TO_SCAN_NAME  "mb_max_to_scan"
 +#define EXT3_MB_MIN_TO_SCAN_NAME  "mb_min_to_scan"
 +#define EXT3_MB_ORDER2_REQ       "mb_order2_req"
@@ -2950,7 +2953,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_max_to_scan = value;    
++      ext3_mb_max_to_scan = value;
 +
 +      return count;
 +}
@@ -2989,7 +2992,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_min_to_scan = value;    
++      ext3_mb_min_to_scan = value;
 +
 +      return count;
 +}
@@ -3028,7 +3031,7 @@ Index: linux-stage/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_order2_reqs = value;    
++      ext3_mb_order2_reqs = value;
 +
 +      return count;
 +}
index 219822b..2a4e19b 100644 (file)
@@ -487,7 +487,7 @@ Index: linux-2.6.9-full/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;
@@ -523,7 +523,7 @@ Index: linux-2.6.9-full/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;
@@ -1584,11 +1584,11 @@ Index: linux-2.6.9-full/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)) {
@@ -2937,7 +2937,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_max_to_scan = value;    
++      ext3_mb_max_to_scan = value;
 +
 +      return count;
 +}
@@ -2976,7 +2976,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_min_to_scan = value;    
++      ext3_mb_min_to_scan = value;
 +
 +      return count;
 +}
@@ -3015,7 +3015,7 @@ Index: linux-2.6.9-full/fs/ext3/mballoc.c
 +      if (value <= 0)
 +              return -ERANGE;
 +
-+      ext3_mb_order2_reqs = value;    
++      ext3_mb_order2_reqs = value;
 +
 +      return count;
 +}