Whamcloud - gitweb
b=4584
authoralex <alex>
Wed, 22 Sep 2004 19:23:35 +0000 (19:23 +0000)
committeralex <alex>
Wed, 22 Sep 2004 19:23:35 +0000 (19:23 +0000)
- mdt_obj_create() should set generation in re-create case

lustre/kernel_patches/patches/ext3-extents-2.4.21-suse2.patch
lustre/kernel_patches/patches/ext3-extents-2.4.24.patch
lustre/kernel_patches/patches/ext3-mds-num-2.4.21-suse.patch
lustre/kernel_patches/patches/ext3-mds-num-2.4.24.patch
lustre/kernel_patches/series/suse-2.4.21-2
lustre/kernel_patches/series/vanilla-2.4.24
lustre/mds/handler.c

index 754d8d4..65289ca 100644 (file)
@@ -1,7 +1,7 @@
 Index: linux-2.4.21-suse2/fs/ext3/extents.c
 ===================================================================
 --- linux-2.4.21-suse2.orig/fs/ext3/extents.c  2003-01-30 13:24:37.000000000 +0300
-+++ linux-2.4.21-suse2/fs/ext3/extents.c       2004-08-10 03:51:34.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/extents.c       2004-09-12 17:56:01.000000000 +0400
 @@ -0,0 +1,2262 @@
 +/*
 + * Copyright (c) 2003, Cluster File Systems, Inc, info@clusterfs.com
@@ -2267,9 +2267,9 @@ Index: linux-2.4.21-suse2/fs/ext3/extents.c
 +
 Index: linux-2.4.21-suse2/fs/ext3/ialloc.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/ext3/ialloc.c   2004-08-10 02:47:55.000000000 +0400
-+++ linux-2.4.21-suse2/fs/ext3/ialloc.c        2004-08-10 03:14:01.000000000 +0400
-@@ -592,10 +592,14 @@
+--- linux-2.4.21-suse2.orig/fs/ext3/ialloc.c   2004-08-19 13:51:48.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/ialloc.c        2004-09-12 18:26:45.000000000 +0400
+@@ -592,10 +592,21 @@
                iloc.bh = NULL;
                goto fail;
        }
@@ -2280,6 +2280,13 @@ Index: linux-2.4.21-suse2/fs/ext3/ialloc.c
 +      if (test_opt(sb, EXTENTS)) {
 +              EXT3_I(inode)->i_flags |= EXT3_EXTENTS_FL;
 +              ext3_extents_initialize_blockmap(handle, inode);
++              if (!EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_EXTENTS)) {
++                      err = ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh);
++                      if (err) goto fail;
++                      EXT3_SET_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_EXTENTS);
++                      BUFFER_TRACE(EXT3_SB(sb)->s_sbh, "call ext3_journal_dirty_metadata");
++                      err = ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
++              }
 +      }
 + 
 +      err = ext3_mark_iloc_dirty(handle, inode, &iloc);
@@ -2289,8 +2296,8 @@ Index: linux-2.4.21-suse2/fs/ext3/ialloc.c
        init_rwsem(&inode->u.ext3_i.xattr_sem);
 Index: linux-2.4.21-suse2/fs/ext3/inode.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/ext3/inode.c    2004-08-10 02:47:56.000000000 +0400
-+++ linux-2.4.21-suse2/fs/ext3/inode.c 2004-08-10 03:14:01.000000000 +0400
+--- linux-2.4.21-suse2.orig/fs/ext3/inode.c    2004-08-19 13:51:48.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/inode.c 2004-09-12 17:56:01.000000000 +0400
 @@ -853,6 +853,16 @@
        goto reread;
  }
@@ -2384,8 +2391,8 @@ Index: linux-2.4.21-suse2/fs/ext3/inode.c
                                 "allocating block %ld\n", rc, iblock);
 Index: linux-2.4.21-suse2/fs/ext3/Makefile
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/ext3/Makefile   2004-08-10 02:47:55.000000000 +0400
-+++ linux-2.4.21-suse2/fs/ext3/Makefile        2004-08-10 03:14:01.000000000 +0400
+--- linux-2.4.21-suse2.orig/fs/ext3/Makefile   2004-08-19 13:45:03.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/Makefile        2004-09-12 17:56:01.000000000 +0400
 @@ -12,7 +12,10 @@
  export-objs := ext3-exports.o
  
@@ -2400,8 +2407,8 @@ Index: linux-2.4.21-suse2/fs/ext3/Makefile
  export-objs += xattr.o
 Index: linux-2.4.21-suse2/fs/ext3/super.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/ext3/super.c    2004-08-10 02:47:55.000000000 +0400
-+++ linux-2.4.21-suse2/fs/ext3/super.c 2004-08-10 03:14:01.000000000 +0400
+--- linux-2.4.21-suse2.orig/fs/ext3/super.c    2004-08-19 13:51:48.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/super.c 2004-09-12 17:56:01.000000000 +0400
 @@ -624,6 +624,7 @@
        int i;
  
@@ -2432,8 +2439,8 @@ Index: linux-2.4.21-suse2/fs/ext3/super.c
  failed_mount3:
 Index: linux-2.4.21-suse2/fs/ext3/ioctl.c
 ===================================================================
---- linux-2.4.21-suse2.orig/fs/ext3/ioctl.c    2004-08-10 02:47:54.000000000 +0400
-+++ linux-2.4.21-suse2/fs/ext3/ioctl.c 2004-08-10 03:14:01.000000000 +0400
+--- linux-2.4.21-suse2.orig/fs/ext3/ioctl.c    2004-08-19 13:45:03.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/ioctl.c 2004-09-12 17:56:01.000000000 +0400
 @@ -174,6 +174,10 @@
                        return ret;
                }
@@ -2447,8 +2454,8 @@ Index: linux-2.4.21-suse2/fs/ext3/ioctl.c
        }
 Index: linux-2.4.21-suse2/include/linux/ext3_fs.h
 ===================================================================
---- linux-2.4.21-suse2.orig/include/linux/ext3_fs.h    2004-08-10 02:47:55.000000000 +0400
-+++ linux-2.4.21-suse2/include/linux/ext3_fs.h 2004-08-10 03:14:01.000000000 +0400
+--- linux-2.4.21-suse2.orig/include/linux/ext3_fs.h    2004-08-19 13:51:48.000000000 +0400
++++ linux-2.4.21-suse2/include/linux/ext3_fs.h 2004-09-12 18:26:06.000000000 +0400
 @@ -184,6 +184,7 @@
  #define EXT3_IMAGIC_FL                        0x00002000 /* AFS directory */
  #define EXT3_JOURNAL_DATA_FL          0x00004000 /* file data should be journaled */
@@ -2476,7 +2483,21 @@ Index: linux-2.4.21-suse2/include/linux/ext3_fs.h
  
  /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
  #ifndef _LINUX_EXT2_FS_H
-@@ -689,6 +695,7 @@
+@@ -504,10 +510,12 @@
+ #define EXT3_FEATURE_INCOMPAT_FILETYPE                0x0002
+ #define EXT3_FEATURE_INCOMPAT_RECOVER         0x0004 /* Needs recovery */
+ #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV     0x0008 /* Journal device */
++#define EXT3_FEATURE_INCOMPAT_EXTENTS         0x0040 /* extents support */
+ #define EXT3_FEATURE_COMPAT_SUPP      EXT2_FEATURE_COMPAT_EXT_ATTR
+ #define EXT3_FEATURE_INCOMPAT_SUPP    (EXT3_FEATURE_INCOMPAT_FILETYPE| \
+-                                       EXT3_FEATURE_INCOMPAT_RECOVER)
++                                       EXT3_FEATURE_INCOMPAT_RECOVER| \
++                                       EXT3_FEATURE_INCOMPAT_EXTENTS)
+ #define EXT3_FEATURE_RO_COMPAT_SUPP   (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
+                                        EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
+                                        EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
+@@ -689,6 +697,7 @@
  extern unsigned long ext3_count_free (struct buffer_head *, unsigned);
  
  /* inode.c */
@@ -2484,7 +2505,7 @@ Index: linux-2.4.21-suse2/include/linux/ext3_fs.h
  extern int ext3_forget(handle_t *, int, struct inode *, struct buffer_head *, int);
  extern struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *);
  extern struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *);
-@@ -770,6 +777,14 @@
+@@ -770,6 +779,14 @@
  extern struct inode_operations ext3_symlink_inode_operations;
  extern struct inode_operations ext3_fast_symlink_inode_operations;
  
@@ -2502,7 +2523,7 @@ Index: linux-2.4.21-suse2/include/linux/ext3_fs.h
 Index: linux-2.4.21-suse2/include/linux/ext3_extents.h
 ===================================================================
 --- linux-2.4.21-suse2.orig/include/linux/ext3_extents.h       2003-01-30 13:24:37.000000000 +0300
-+++ linux-2.4.21-suse2/include/linux/ext3_extents.h    2004-08-10 03:46:31.000000000 +0400
++++ linux-2.4.21-suse2/include/linux/ext3_extents.h    2004-09-12 17:56:01.000000000 +0400
 @@ -0,0 +1,237 @@
 +/*
 + * Copyright (c) 2003, Cluster File Systems, Inc, info@clusterfs.com
@@ -2743,8 +2764,8 @@ Index: linux-2.4.21-suse2/include/linux/ext3_extents.h
 +
 Index: linux-2.4.21-suse2/include/linux/ext3_fs_i.h
 ===================================================================
---- linux-2.4.21-suse2.orig/include/linux/ext3_fs_i.h  2004-08-10 02:47:55.000000000 +0400
-+++ linux-2.4.21-suse2/include/linux/ext3_fs_i.h       2004-08-10 03:14:01.000000000 +0400
+--- linux-2.4.21-suse2.orig/include/linux/ext3_fs_i.h  2004-08-19 13:51:48.000000000 +0400
++++ linux-2.4.21-suse2/include/linux/ext3_fs_i.h       2004-09-12 17:56:01.000000000 +0400
 @@ -90,6 +90,8 @@
         * by other means, so we have truncate_sem.
         */
index 90642b3..d6b0d4f 100644 (file)
@@ -1,7 +1,7 @@
 Index: linux-2.4.24/fs/ext3/extents.c
 ===================================================================
 --- linux-2.4.24.orig/fs/ext3/extents.c        2003-01-30 13:24:37.000000000 +0300
-+++ linux-2.4.24/fs/ext3/extents.c     2004-08-10 03:52:42.000000000 +0400
++++ linux-2.4.24/fs/ext3/extents.c     2004-09-12 17:37:14.000000000 +0400
 @@ -0,0 +1,2262 @@
 +/*
 + * Copyright (c) 2003, Cluster File Systems, Inc, info@clusterfs.com
@@ -2268,8 +2268,8 @@ Index: linux-2.4.24/fs/ext3/extents.c
 Index: linux-2.4.24/fs/ext3/ialloc.c
 ===================================================================
 --- linux-2.4.24.orig/fs/ext3/ialloc.c 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/ialloc.c      2004-08-10 03:25:26.000000000 +0400
-@@ -593,10 +593,14 @@
++++ linux-2.4.24/fs/ext3/ialloc.c      2004-09-12 17:49:24.000000000 +0400
+@@ -593,10 +593,21 @@
                iloc.bh = NULL;
                goto fail;
        }
@@ -2279,7 +2279,14 @@ Index: linux-2.4.24/fs/ext3/ialloc.c
 +      if (test_opt(sb, EXTENTS)) {
 +              EXT3_I(inode)->i_flags |= EXT3_EXTENTS_FL;
 +              ext3_extents_initialize_blockmap(handle, inode);
-+      }
++              if (!EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_EXTENTS)) {
++                      err = ext3_journal_get_write_access(handle, EXT3_SB(sb)->s_sbh);
++                      if (err) goto fail;
++                      EXT3_SET_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_EXTENTS);
++                      BUFFER_TRACE(EXT3_SB(sb)->s_sbh, "call ext3_journal_dirty_metadata");
++                      err = ext3_journal_dirty_metadata(handle, EXT3_SB(sb)->s_sbh);
++              }
++      }
  
 +      err = ext3_mark_iloc_dirty(handle, inode, &iloc);
 +      if (err) goto fail;
@@ -2289,7 +2296,7 @@ Index: linux-2.4.24/fs/ext3/ialloc.c
 Index: linux-2.4.24/fs/ext3/inode.c
 ===================================================================
 --- linux-2.4.24.orig/fs/ext3/inode.c  2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/inode.c       2004-08-10 03:25:26.000000000 +0400
++++ linux-2.4.24/fs/ext3/inode.c       2004-09-12 17:37:14.000000000 +0400
 @@ -848,6 +848,15 @@
        goto reread;
  }
@@ -2374,7 +2381,7 @@ Index: linux-2.4.24/fs/ext3/inode.c
 Index: linux-2.4.24/fs/ext3/Makefile
 ===================================================================
 --- linux-2.4.24.orig/fs/ext3/Makefile 2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/Makefile      2004-08-10 03:25:26.000000000 +0400
++++ linux-2.4.24/fs/ext3/Makefile      2004-09-12 17:37:14.000000000 +0400
 @@ -13,7 +13,9 @@
  
  obj-y    := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o iopen.o \
@@ -2389,7 +2396,7 @@ Index: linux-2.4.24/fs/ext3/Makefile
 Index: linux-2.4.24/fs/ext3/super.c
 ===================================================================
 --- linux-2.4.24.orig/fs/ext3/super.c  2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/fs/ext3/super.c       2004-08-10 03:25:26.000000000 +0400
++++ linux-2.4.24/fs/ext3/super.c       2004-09-12 17:37:14.000000000 +0400
 @@ -530,6 +530,7 @@
        int i;
  
@@ -2421,7 +2428,7 @@ Index: linux-2.4.24/fs/ext3/super.c
 Index: linux-2.4.24/fs/ext3/ioctl.c
 ===================================================================
 --- linux-2.4.24.orig/fs/ext3/ioctl.c  2004-08-07 16:35:23.000000000 +0400
-+++ linux-2.4.24/fs/ext3/ioctl.c       2004-08-10 03:25:26.000000000 +0400
++++ linux-2.4.24/fs/ext3/ioctl.c       2004-09-12 17:37:14.000000000 +0400
 @@ -174,6 +174,10 @@
                        return ret;
                }
@@ -2436,7 +2443,7 @@ Index: linux-2.4.24/fs/ext3/ioctl.c
 Index: linux-2.4.24/include/linux/ext3_fs.h
 ===================================================================
 --- linux-2.4.24.orig/include/linux/ext3_fs.h  2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs.h       2004-08-10 03:25:26.000000000 +0400
++++ linux-2.4.24/include/linux/ext3_fs.h       2004-09-12 17:45:20.000000000 +0400
 @@ -185,6 +185,7 @@
  #define EXT3_JOURNAL_DATA_FL          0x00004000 /* file data should be journaled */
  #define EXT3_EXTRA_ISIZE              0x00008000 /* inode has initialized i_extra_isize */
@@ -2464,7 +2471,21 @@ Index: linux-2.4.24/include/linux/ext3_fs.h
  
  /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
  #ifndef _LINUX_EXT2_FS_H
-@@ -689,6 +695,7 @@
+@@ -504,10 +510,12 @@
+ #define EXT3_FEATURE_INCOMPAT_FILETYPE                0x0002
+ #define EXT3_FEATURE_INCOMPAT_RECOVER         0x0004 /* Needs recovery */
+ #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV     0x0008 /* Journal device */
++#define EXT3_FEATURE_INCOMPAT_EXTENTS         0x0040 /* extents support */
+ #define EXT3_FEATURE_COMPAT_SUPP      EXT2_FEATURE_COMPAT_EXT_ATTR
+ #define EXT3_FEATURE_INCOMPAT_SUPP    (EXT3_FEATURE_INCOMPAT_FILETYPE| \
+-                                       EXT3_FEATURE_INCOMPAT_RECOVER)
++                                       EXT3_FEATURE_INCOMPAT_RECOVER| \
++                                       EXT3_FEATURE_INCOMPAT_EXTENTS)
+ #define EXT3_FEATURE_RO_COMPAT_SUPP   (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
+                                        EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
+                                        EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
+@@ -689,6 +697,7 @@
  extern unsigned long ext3_count_free (struct buffer_head *, unsigned);
  
  /* inode.c */
@@ -2472,7 +2493,7 @@ Index: linux-2.4.24/include/linux/ext3_fs.h
  extern int ext3_forget(handle_t *, int, struct inode *, struct buffer_head *, int);
  extern struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *);
  extern struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *);
-@@ -770,6 +777,14 @@
+@@ -770,6 +779,14 @@
  extern struct inode_operations ext3_symlink_inode_operations;
  extern struct inode_operations ext3_fast_symlink_inode_operations;
  
@@ -2490,7 +2511,7 @@ Index: linux-2.4.24/include/linux/ext3_fs.h
 Index: linux-2.4.24/include/linux/ext3_extents.h
 ===================================================================
 --- linux-2.4.24.orig/include/linux/ext3_extents.h     2003-01-30 13:24:37.000000000 +0300
-+++ linux-2.4.24/include/linux/ext3_extents.h  2004-08-10 03:49:41.000000000 +0400
++++ linux-2.4.24/include/linux/ext3_extents.h  2004-09-12 17:37:14.000000000 +0400
 @@ -0,0 +1,237 @@
 +/*
 + * Copyright (c) 2003, Cluster File Systems, Inc, info@clusterfs.com
@@ -2732,7 +2753,7 @@ Index: linux-2.4.24/include/linux/ext3_extents.h
 Index: linux-2.4.24/include/linux/ext3_fs_i.h
 ===================================================================
 --- linux-2.4.24.orig/include/linux/ext3_fs_i.h        2004-08-07 16:35:25.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs_i.h     2004-08-10 03:25:26.000000000 +0400
++++ linux-2.4.24/include/linux/ext3_fs_i.h     2004-09-12 17:37:14.000000000 +0400
 @@ -76,6 +76,8 @@
         * by other means, so we have truncate_sem.
         */
index 7a97150..4a80338 100644 (file)
@@ -1,8 +1,8 @@
-Index: linux-2.4.24/fs/ext3/namei.c
+Index: linux-2.4.21-suse2/fs/ext3/namei.c
 ===================================================================
---- linux-2.4.24.orig/fs/ext3/namei.c  2004-07-19 11:11:29.000000000 +0400
-+++ linux-2.4.24/fs/ext3/namei.c       2004-07-19 11:11:29.000000000 +0400
-@@ -1099,6 +1099,23 @@
+--- linux-2.4.21-suse2.orig/fs/ext3/namei.c    2004-09-12 18:26:52.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/namei.c 2004-09-12 18:27:04.000000000 +0400
+@@ -1100,6 +1100,23 @@
        inode = NULL;
        if (bh) {
                unsigned long ino = le32_to_cpu(de->inode);
@@ -26,7 +26,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
                ext3_unlock_htree(dir, lock);
                brelse (bh);
                inode = iget(dir->i_sb, ino);
-@@ -1138,7 +1155,7 @@
+@@ -1139,7 +1156,7 @@
        while (count--) {
                struct ext3_dir_entry_2 *de =
                        (struct ext3_dir_entry_2 *) (from + map->offs);
@@ -35,7 +35,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
                memcpy (to, de, rec_len);
                ((struct ext3_dir_entry_2 *)to)->rec_len = cpu_to_le16(rec_len);
                de->inode = 0;
-@@ -1159,7 +1176,7 @@
+@@ -1160,7 +1177,7 @@
                next = (struct ext3_dir_entry_2 *) ((char *) de +
                                                    le16_to_cpu(de->rec_len));
                if (de->inode && de->name_len) {
@@ -44,7 +44,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
                        if (de > to)
                                memmove(to, de, rec_len);
                        to->rec_len = cpu_to_le16(rec_len);
-@@ -1275,6 +1292,7 @@
+@@ -1276,6 +1293,7 @@
                             struct buffer_head * bh)
  {
        struct inode    *dir = dentry->d_parent->d_inode;
@@ -52,7 +52,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
        const char      *name = dentry->d_name.name;
        int             namelen = dentry->d_name.len;
        unsigned long   offset = 0;
-@@ -1283,6 +1301,10 @@
+@@ -1284,6 +1302,10 @@
        char            *top;
        
        reclen = EXT3_DIR_REC_LEN(namelen);
@@ -63,7 +63,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
        if (!de) {
                de = (struct ext3_dir_entry_2 *)bh->b_data;
                top = bh->b_data + dir->i_sb->s_blocksize - reclen;
-@@ -1296,7 +1318,7 @@
+@@ -1297,7 +1319,7 @@
                                brelse (bh);
                                return -EEXIST;
                        }
@@ -72,7 +72,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
                        rlen = le16_to_cpu(de->rec_len);
                        if ((de->inode? rlen - nlen: rlen) >= reclen)
                                break;
-@@ -1315,7 +1337,7 @@
+@@ -1316,7 +1338,7 @@
        }
        
        /* By now the buffer is marked for journaling */
@@ -81,7 +81,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
        rlen = le16_to_cpu(de->rec_len);
        if (de->inode) {
                struct ext3_dir_entry_2 *de1 =
-@@ -1327,8 +1349,20 @@
+@@ -1328,8 +1350,20 @@
        de->file_type = EXT3_FT_UNKNOWN;
        if (inode) {
                de->inode = cpu_to_le32(inode->i_ino);
@@ -104,7 +104,7 @@ Index: linux-2.4.24/fs/ext3/namei.c
                de->inode = 0;
        de->name_len = namelen;
        memcpy (de->name, name, namelen);
-@@ -2662,6 +2696,79 @@
+@@ -2630,6 +2664,79 @@
  }
  
  /*
@@ -184,10 +184,10 @@ Index: linux-2.4.24/fs/ext3/namei.c
   * directories can handle most operations...
   */
  struct inode_operations ext3_dir_inode_operations = {
-Index: linux-2.4.24/fs/ext3/dir.c
+Index: linux-2.4.21-suse2/fs/ext3/dir.c
 ===================================================================
---- linux-2.4.24.orig/fs/ext3/dir.c    2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/fs/ext3/dir.c 2004-07-30 23:56:03.000000000 +0400
+--- linux-2.4.21-suse2.orig/fs/ext3/dir.c      2004-08-19 13:45:02.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/dir.c   2004-09-12 18:27:04.000000000 +0400
 @@ -42,6 +42,9 @@
  
  static unsigned char get_dtype(struct super_block *sb, int filetype)
@@ -211,11 +211,11 @@ Index: linux-2.4.24/fs/ext3/dir.c
  
        if (error_msg != NULL)
                ext3_error (dir->i_sb, function,
-Index: linux-2.4.24/fs/ext3/ext3-exports.c
+Index: linux-2.4.21-suse2/fs/ext3/ext3-exports.c
 ===================================================================
---- linux-2.4.24.orig/fs/ext3/ext3-exports.c   2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/fs/ext3/ext3-exports.c        2004-07-19 11:11:29.000000000 +0400
-@@ -26,3 +26,10 @@
+--- linux-2.4.21-suse2.orig/fs/ext3/ext3-exports.c     2004-08-19 13:45:03.000000000 +0400
++++ linux-2.4.21-suse2/fs/ext3/ext3-exports.c  2004-09-12 18:27:04.000000000 +0400
+@@ -27,3 +27,10 @@
  EXPORT_SYMBOL(ext3_decode_error);
  EXPORT_SYMBOL(__ext3_std_error);
  
@@ -226,11 +226,11 @@ Index: linux-2.4.24/fs/ext3/ext3-exports.c
 +
 +
 +
-Index: linux-2.4.24/include/linux/ext3_fs.h
+Index: linux-2.4.21-suse2/include/linux/ext3_fs.h
 ===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs.h  2004-07-19 11:11:29.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs.h       2004-07-19 11:13:53.000000000 +0400
-@@ -446,7 +446,8 @@
+--- linux-2.4.21-suse2.orig/include/linux/ext3_fs.h    2004-09-12 18:26:52.000000000 +0400
++++ linux-2.4.21-suse2/include/linux/ext3_fs.h 2004-09-12 18:28:01.000000000 +0400
+@@ -438,7 +438,8 @@
        __u8    s_def_hash_version;     /* Default hash version to use */
        __u8    s_reserved_char_pad;
        __u16   s_reserved_word_pad;
@@ -240,21 +240,21 @@ Index: linux-2.4.24/include/linux/ext3_fs.h
  };
  
  #ifdef __KERNEL__
-@@ -519,10 +520,12 @@
+@@ -511,11 +512,13 @@
  #define EXT3_FEATURE_INCOMPAT_FILETYPE                0x0002
  #define EXT3_FEATURE_INCOMPAT_RECOVER         0x0004 /* Needs recovery */
  #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV     0x0008 /* Journal device */
 +#define EXT3_FEATURE_INCOMPAT_MDSNUM          0x0020 /* direntry has mdsnum */
+ #define EXT3_FEATURE_INCOMPAT_EXTENTS         0x0040 /* extents support */
  
  #define EXT3_FEATURE_COMPAT_SUPP      EXT2_FEATURE_COMPAT_EXT_ATTR
  #define EXT3_FEATURE_INCOMPAT_SUPP    (EXT3_FEATURE_INCOMPAT_FILETYPE| \
--                                       EXT3_FEATURE_INCOMPAT_RECOVER)
-+                                       EXT3_FEATURE_INCOMPAT_RECOVER| \
-+                                       EXT3_FEATURE_INCOMPAT_MDSNUM)
+                                        EXT3_FEATURE_INCOMPAT_RECOVER| \
++                                       EXT3_FEATURE_INCOMPAT_MDSNUM| \
+                                        EXT3_FEATURE_INCOMPAT_EXTENTS)
  #define EXT3_FEATURE_RO_COMPAT_SUPP   (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
                                         EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
-                                        EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
-@@ -583,6 +586,9 @@
+@@ -577,6 +580,9 @@
  #define EXT3_DIR_ROUND                        (EXT3_DIR_PAD - 1)
  #define EXT3_DIR_REC_LEN(name_len)    (((name_len) + 8 + EXT3_DIR_ROUND) & \
                                         ~EXT3_DIR_ROUND)
@@ -264,10 +264,10 @@ Index: linux-2.4.24/include/linux/ext3_fs.h
  /*
   * Hash Tree Directory indexing
   * (c) Daniel Phillips, 2001
-Index: linux-2.4.24/include/linux/ext3_fs_sb.h
+Index: linux-2.4.21-suse2/include/linux/ext3_fs_sb.h
 ===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs_sb.h       2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs_sb.h    2004-07-19 11:12:54.000000000 +0400
+--- linux-2.4.21-suse2.orig/include/linux/ext3_fs_sb.h 2004-08-19 14:01:33.000000000 +0400
++++ linux-2.4.21-suse2/include/linux/ext3_fs_sb.h      2004-09-12 18:27:04.000000000 +0400
 @@ -86,6 +86,7 @@
        wait_queue_head_t s_delete_thread_queue;
        wait_queue_head_t s_delete_waiter_queue;
@@ -276,11 +276,11 @@ Index: linux-2.4.24/include/linux/ext3_fs_sb.h
  };
  
  #endif        /* _LINUX_EXT3_FS_SB */
-Index: linux-2.4.24/include/linux/dcache.h
+Index: linux-2.4.21-suse2/include/linux/dcache.h
 ===================================================================
---- linux-2.4.24.orig/include/linux/dcache.h   2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/include/linux/dcache.h        2004-07-19 11:12:53.000000000 +0400
-@@ -120,6 +120,9 @@
+--- linux-2.4.21-suse2.orig/include/linux/dcache.h     2004-08-19 13:46:46.000000000 +0400
++++ linux-2.4.21-suse2/include/linux/dcache.h  2004-09-12 18:27:04.000000000 +0400
+@@ -121,6 +121,9 @@
        atomic_t d_count;
        unsigned int d_flags;
        struct inode  * d_inode;        /* Where the name belongs to - NULL is negative */
@@ -290,7 +290,7 @@ Index: linux-2.4.24/include/linux/dcache.h
        struct dentry * d_parent;       /* parent directory */
        struct list_head d_hash;        /* lookup hash list */
        struct list_head d_lru;         /* d_count = 0 LRU list */
-@@ -193,6 +196,7 @@
+@@ -195,6 +198,7 @@
                                         */
  #define DCACHE_REFERENCED     0x0008  /* Recently used, don't discard. */
  #define DCACHE_LUSTRE_INVALID 0x0010  /* Lustre invalidated */
index 7a97150..c524f01 100644 (file)
@@ -1,7 +1,7 @@
 Index: linux-2.4.24/fs/ext3/namei.c
 ===================================================================
---- linux-2.4.24.orig/fs/ext3/namei.c  2004-07-19 11:11:29.000000000 +0400
-+++ linux-2.4.24/fs/ext3/namei.c       2004-07-19 11:11:29.000000000 +0400
+--- linux-2.4.24.orig/fs/ext3/namei.c  2004-09-12 17:52:58.000000000 +0400
++++ linux-2.4.24/fs/ext3/namei.c       2004-09-12 17:53:10.000000000 +0400
 @@ -1099,6 +1099,23 @@
        inode = NULL;
        if (bh) {
@@ -186,8 +186,8 @@ Index: linux-2.4.24/fs/ext3/namei.c
  struct inode_operations ext3_dir_inode_operations = {
 Index: linux-2.4.24/fs/ext3/dir.c
 ===================================================================
---- linux-2.4.24.orig/fs/ext3/dir.c    2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/fs/ext3/dir.c 2004-07-30 23:56:03.000000000 +0400
+--- linux-2.4.24.orig/fs/ext3/dir.c    2004-08-07 16:35:23.000000000 +0400
++++ linux-2.4.24/fs/ext3/dir.c 2004-09-12 17:53:10.000000000 +0400
 @@ -42,6 +42,9 @@
  
  static unsigned char get_dtype(struct super_block *sb, int filetype)
@@ -213,8 +213,8 @@ Index: linux-2.4.24/fs/ext3/dir.c
                ext3_error (dir->i_sb, function,
 Index: linux-2.4.24/fs/ext3/ext3-exports.c
 ===================================================================
---- linux-2.4.24.orig/fs/ext3/ext3-exports.c   2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/fs/ext3/ext3-exports.c        2004-07-19 11:11:29.000000000 +0400
+--- linux-2.4.24.orig/fs/ext3/ext3-exports.c   2004-08-07 16:35:24.000000000 +0400
++++ linux-2.4.24/fs/ext3/ext3-exports.c        2004-09-12 17:53:10.000000000 +0400
 @@ -26,3 +26,10 @@
  EXPORT_SYMBOL(ext3_decode_error);
  EXPORT_SYMBOL(__ext3_std_error);
@@ -228,37 +228,27 @@ Index: linux-2.4.24/fs/ext3/ext3-exports.c
 +
 Index: linux-2.4.24/include/linux/ext3_fs.h
 ===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs.h  2004-07-19 11:11:29.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs.h       2004-07-19 11:13:53.000000000 +0400
-@@ -446,7 +446,8 @@
-       __u8    s_def_hash_version;     /* Default hash version to use */
-       __u8    s_reserved_char_pad;
-       __u16   s_reserved_word_pad;
--      __u32   s_reserved[192];        /* Padding to the end of the block */
-+      __u32   s_mdsnum;
-+      __u32   s_reserved[191];        /* Padding to the end of the block */
- };
- #ifdef __KERNEL__
-@@ -519,10 +520,12 @@
+--- linux-2.4.24.orig/include/linux/ext3_fs.h  2004-09-12 17:52:58.000000000 +0400
++++ linux-2.4.24/include/linux/ext3_fs.h       2004-09-12 18:11:02.000000000 +0400
+@@ -519,11 +519,13 @@
  #define EXT3_FEATURE_INCOMPAT_FILETYPE                0x0002
  #define EXT3_FEATURE_INCOMPAT_RECOVER         0x0004 /* Needs recovery */
  #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV     0x0008 /* Journal device */
 +#define EXT3_FEATURE_INCOMPAT_MDSNUM          0x0020 /* direntry has mdsnum */
+ #define EXT3_FEATURE_INCOMPAT_EXTENTS         0x0040 /* extents support */
  
  #define EXT3_FEATURE_COMPAT_SUPP      EXT2_FEATURE_COMPAT_EXT_ATTR
  #define EXT3_FEATURE_INCOMPAT_SUPP    (EXT3_FEATURE_INCOMPAT_FILETYPE| \
--                                       EXT3_FEATURE_INCOMPAT_RECOVER)
-+                                       EXT3_FEATURE_INCOMPAT_RECOVER| \
-+                                       EXT3_FEATURE_INCOMPAT_MDSNUM)
+                                        EXT3_FEATURE_INCOMPAT_RECOVER| \
++                                       EXT3_FEATURE_INCOMPAT_MDSNUM| \
+                                        EXT3_FEATURE_INCOMPAT_EXTENTS)
  #define EXT3_FEATURE_RO_COMPAT_SUPP   (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
                                         EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
-                                        EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
-@@ -583,6 +586,9 @@
+@@ -585,6 +587,9 @@
  #define EXT3_DIR_ROUND                        (EXT3_DIR_PAD - 1)
  #define EXT3_DIR_REC_LEN(name_len)    (((name_len) + 8 + EXT3_DIR_ROUND) & \
                                         ~EXT3_DIR_ROUND)
-+#define EXT3_DIR_REC_LEN_DE(de)       (EXT3_DIR_REC_LEN((de)->name_len) + \
++#define EXT3_DIR_REC_LEN_DE(de)               (EXT3_DIR_REC_LEN((de)->name_len) + \
 +                                      (((de)->file_type & 128) ? 8 : 0))
 +
  /*
@@ -266,8 +256,8 @@ Index: linux-2.4.24/include/linux/ext3_fs.h
   * (c) Daniel Phillips, 2001
 Index: linux-2.4.24/include/linux/ext3_fs_sb.h
 ===================================================================
---- linux-2.4.24.orig/include/linux/ext3_fs_sb.h       2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/include/linux/ext3_fs_sb.h    2004-07-19 11:12:54.000000000 +0400
+--- linux-2.4.24.orig/include/linux/ext3_fs_sb.h       2004-08-10 16:10:54.000000000 +0400
++++ linux-2.4.24/include/linux/ext3_fs_sb.h    2004-09-12 18:11:38.000000000 +0400
 @@ -86,6 +86,7 @@
        wait_queue_head_t s_delete_thread_queue;
        wait_queue_head_t s_delete_waiter_queue;
@@ -278,8 +268,8 @@ Index: linux-2.4.24/include/linux/ext3_fs_sb.h
  #endif        /* _LINUX_EXT3_FS_SB */
 Index: linux-2.4.24/include/linux/dcache.h
 ===================================================================
---- linux-2.4.24.orig/include/linux/dcache.h   2004-07-19 11:11:16.000000000 +0400
-+++ linux-2.4.24/include/linux/dcache.h        2004-07-19 11:12:53.000000000 +0400
+--- linux-2.4.24.orig/include/linux/dcache.h   2004-08-07 16:35:23.000000000 +0400
++++ linux-2.4.24/include/linux/dcache.h        2004-09-12 18:11:38.000000000 +0400
 @@ -120,6 +120,9 @@
        atomic_t d_count;
        unsigned int d_flags;
index 3987550..6272220 100644 (file)
@@ -37,7 +37,7 @@ ext3-extents-asyncdel-2.4.24.patch
 dynamic-locks-2.4.21-suse2.patch
 vfs-pdirops-2.4.21-suse2.patch 
 ext3-pdirops-2.4.24-chaos.patch
-ext3-mds-num-2.4.21-suse.patch
+ext3-mds-num-2.4.21-suse.patch 
 ext3-inode-reuse-2.4.20.patch
 ext3-raw-lookup-pdirops.patch
 ext3-extents-in-ea-2.4.21-suse2.patch
index 758e9d6..7db12db 100644 (file)
@@ -28,7 +28,7 @@ nfs_export_kernel-2.4.22.patch
 ext3-ea-in-inode-2.4.22-rh.patch
 listman-2.4.20.patch
 ext3-trusted_ea-2.4.20.patch
-ext3-extents-2.4.24.patch
+ext3-extents-2.4.24.patch 
 ext3-extents-in-ea-2.4.20.patch
 ext3-extents-in-ea-ioctl-2.4.20.patch
 ext3-extents-in-ea-exports-symbol-2.4.24.patch
@@ -42,7 +42,7 @@ inode-max-readahead-2.4.24.patch
 dynamic-locks-2.4.24.patch
 vfs-pdirops-2.4.20-rh.patch
 ext3-pdirops-2.4.24-chaos.patch
-ext3-mds-num-2.4.24.patch
+ext3-mds-num-2.4.24.patch 
 export_lookup_create.patch
 ext3-raw-lookup-pdirops.patch
 kksymoops-2.4.24.vanilla.patch
index 68cf8bd..ffaac22 100644 (file)
@@ -1563,6 +1563,8 @@ repeat:
         rc = vfs_mkdir(parent_inode, new, body->oa.o_mode);
         if (rc == 0) {
                 if (lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY) {
+                        new->d_inode->i_generation = body->oa.o_generation;
+                        mark_inode_dirty(new->d_inode);
                         LASSERTF(body->oa.o_id == new->d_inode->i_ino, 
                                  "BUG 3550: failed to recreate obj "
                                  LPU64" -> %lu\n",
@@ -1575,10 +1577,6 @@ repeat:
                                  new->d_inode->i_ino, 
                                  new->d_inode->i_generation);
                 }
-                if (lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY) {
-                        new->d_inode->i_generation = body->oa.o_generation;
-                        mark_inode_dirty(new->d_inode);
-                }
 
                 obdo_from_inode(&repbody->oa, new->d_inode, FILTER_VALID_FLAGS);
                 repbody->oa.o_id = new->d_inode->i_ino;