Whamcloud - gitweb
Update UML fire-putting-out patch.
[fs/lustre-release.git] / lustre / extN / extN.patch-2.4.18-40um
index 03f0f08..99c7fda 100644 (file)
@@ -1,5 +1,5 @@
---- extN/extN.orig/balloc.c    Tue Sep 24 15:41:40 2002
-+++ extN/balloc.c      Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/balloc.c    Wed Sep 25 11:51:33 2002
++++ extN/balloc.c      Wed Sep 25 14:22:53 2002
 @@ -46,18 +46,18 @@
        unsigned long desc;
        struct extN_group_desc * gdp;
                return -EIO;
        
        /*
+@@ -275,7 +273,7 @@
+               return;
+       }
+       lock_super (sb);
+-      es = sb->u.extN_sb.s_es;
++      es = EXTN_SB(sb)->s_es;
+       if (block < le32_to_cpu(es->s_first_data_block) || 
+           (block + count) > le32_to_cpu(es->s_blocks_count)) {
+               extN_error (sb, "extN_free_blocks",
 @@ -304,7 +302,7 @@
        if (bitmap_nr < 0)
                goto error_return;
        gdp = extN_get_group_desc (sb, block_group, &gd_bh);
        if (!gdp)
                goto error_return;
+@@ -312,9 +310,9 @@
+       if (in_range (le32_to_cpu(gdp->bg_block_bitmap), block, count) ||
+           in_range (le32_to_cpu(gdp->bg_inode_bitmap), block, count) ||
+           in_range (block, le32_to_cpu(gdp->bg_inode_table),
+-                    sb->u.extN_sb.s_itb_per_group) ||
++                    EXTN_SB(sb)->s_itb_per_group) ||
+           in_range (block + count - 1, le32_to_cpu(gdp->bg_inode_table),
+-                    sb->u.extN_sb.s_itb_per_group))
++                    EXTN_SB(sb)->s_itb_per_group))
+               extN_error (sb, "extN_free_blocks",
+                           "Freeing blocks in system zones - "
+                           "Block = %lu, count = %lu",
 @@ -340,8 +338,8 @@
        if (err)
                goto error_return;
        if (fatal) goto out;
  
        tmp = j + i * EXTN_BLOCKS_PER_GROUP(sb)
+@@ -684,7 +682,7 @@
+       if (tmp == le32_to_cpu(gdp->bg_block_bitmap) ||
+           tmp == le32_to_cpu(gdp->bg_inode_bitmap) ||
+           in_range (tmp, le32_to_cpu(gdp->bg_inode_table),
+-                    sb->u.extN_sb.s_itb_per_group))
++                    EXTN_SB(sb)->s_itb_per_group))
+               extN_error (sb, "extN_new_block",
+                           "Allocating block in system zone - "
+                           "block = %u", tmp);
 @@ -796,7 +794,7 @@
        if (!fatal) fatal = err;
        
                        if (!block_in_use (le32_to_cpu(gdp->bg_inode_table) + j,
                                                        sb, bh->b_data))
                                extN_error (sb, "extN_check_blocks_bitmap",
---- extN/extN.orig/dir.c       Tue Sep 24 15:41:40 2002
-+++ extN/dir.c Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/dir.c       Wed Sep 25 11:51:33 2002
++++ extN/dir.c Wed Sep 25 11:53:07 2002
 @@ -52,7 +52,7 @@
        else if (((char *) de - bh->b_data) + rlen > dir->i_sb->s_blocksize)
                error_msg = "directory entry across blocks";
                error_msg = "inode out of bounds";
  
        if (error_msg != NULL)
---- extN/extN.orig/ialloc.c    Tue Sep 24 15:41:40 2002
-+++ extN/ialloc.c      Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/ialloc.c    Wed Sep 25 11:51:33 2002
++++ extN/ialloc.c      Wed Sep 25 11:53:07 2002
 @@ -17,6 +17,7 @@
  #include <linux/jbd.h>
  #include <linux/extN_fs.h>
                                     EXTN_INODES_PER_GROUP(sb) / 8);
                if (le16_to_cpu(gdp->bg_free_inodes_count) != x)
                        extN_error (sb, "extN_check_inodes_bitmap",
---- extN/extN.orig/inode.c     Tue Sep 24 15:41:40 2002
-+++ extN/inode.c       Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/inode.c     Wed Sep 25 11:51:33 2002
++++ extN/inode.c       Wed Sep 25 11:53:07 2002
 @@ -39,6 +39,18 @@
   */
  #undef SEARCH_FROM_ZERO
  
        journal_unlock_updates(journal);
  
---- extN/extN.orig/ioctl.c     Tue Sep 24 15:41:40 2002
-+++ extN/ioctl.c       Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/ioctl.c     Wed Sep 25 11:51:33 2002
++++ extN/ioctl.c       Wed Sep 25 11:53:07 2002
 @@ -18,13 +18,14 @@
  int extN_ioctl (struct inode * inode, struct file * filp, unsigned int cmd,
                unsigned long arg)
                        return ret;
                }
  #endif
---- extN/extN.orig/namei.c     Tue Sep 24 15:41:40 2002
-+++ extN/namei.c       Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/namei.c     Wed Sep 25 11:51:34 2002
++++ extN/namei.c       Wed Sep 25 14:24:17 2002
 @@ -16,6 +16,10 @@
   *        David S. Miller (davem@caip.rutgers.edu), 1995
   *  Directory entry file type support and forward compatibility hooks
                inode->i_op = &page_symlink_inode_operations;
                inode->i_mapping->a_ops = &extN_aops;
                /*
+@@ -929,10 +1692,10 @@
+                       goto out_no_entry;
+       } else {
+               inode->i_op = &extN_fast_symlink_inode_operations;
+-              memcpy((char*)&inode->u.extN_i.i_data,symname,l);
++              memcpy((char*)&EXTN_I(inode)->i_data,symname,l);
+               inode->i_size = l-1;
+       }
+-      inode->u.extN_i.i_disksize = inode->i_size;
++      EXTN_I(inode)->i_disksize = inode->i_size;
+       extN_mark_inode_dirty(handle, inode);
+       err = extN_add_nondir(handle, dentry, inode);
+ out_stop:
 @@ -959,7 +1722,8 @@
        if (inode->i_nlink >= EXTN_LINK_MAX)
                return -EMLINK;
                        extN_mark_inode_dirty(handle, new_dir);
                }
        }
---- extN/extN.orig/super.c     Tue Sep 24 15:41:40 2002
-+++ extN/super.c       Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/super.c     Wed Sep 25 11:51:34 2002
++++ extN/super.c       Wed Sep 25 11:53:07 2002
 @@ -24,6 +24,7 @@
  #include <linux/jbd.h>
  #include <linux/extN_fs.h>
  }
  
  EXPORT_SYMBOL(extN_bread);
---- extN/extN.orig/symlink.c   Tue Sep 24 15:41:40 2002
-+++ extN/symlink.c     Tue Sep 24 22:07:38 2002
+--- extN/extN.orig/symlink.c   Wed Sep 25 11:51:34 2002
++++ extN/symlink.c     Wed Sep 25 11:53:07 2002
 @@ -23,14 +23,14 @@
  
  static int extN_readlink(struct dentry *dentry, char *buffer, int buflen)
  }
  
  struct inode_operations extN_fast_symlink_inode_operations = {
---- extN/extN.orig-include/extN_fs.h   Tue Sep 24 15:41:40 2002
-+++ include/linux/extN_fs.h    Tue Sep 24 22:07:38 2002
-@@ -58,8 +58,6 @@
+--- extN/extN-include.orig/extN_fs.h   Wed Sep 25 11:51:34 2002
++++ include/linux/extN_fs.h    Wed Sep 25 14:13:38 2002
+@@ -17,6 +17,8 @@
+ #define _LINUX_EXTN_FS_H
+ #include <linux/types.h>
++#include <linux/extN_fs_sb.h>
++#include <linux/extN_fs_i.h>
+ /*
+  * The second extended filesystem constants/structures
+@@ -58,8 +60,6 @@
   */
  #define       EXTN_BAD_INO             1      /* Bad blocks inode */
  #define EXTN_ROOT_INO          2      /* Root inode */
  #define EXTN_BOOT_LOADER_INO   5      /* Boot loader inode */
  #define EXTN_UNDEL_DIR_INO     6      /* Undelete directory inode */
  #define EXTN_RESIZE_INO                7      /* Reserved group descriptors inode */
-@@ -84,23 +82,25 @@
+@@ -84,23 +84,25 @@
  #define EXTN_MIN_BLOCK_SIZE           1024
  #define       EXTN_MAX_BLOCK_SIZE             4096
  #define EXTN_MIN_BLOCK_LOG_SIZE                 10
 -#define       EXTN_ADDR_PER_BLOCK_BITS(s)     ((s)->u.extN_sb.s_addr_per_block_bits)
 -#define EXTN_INODE_SIZE(s)            ((s)->u.extN_sb.s_inode_size)
 -#define EXTN_FIRST_INO(s)             ((s)->u.extN_sb.s_first_ino)
-+#define EXTN_SB(sb)   (&((sb)->u.extN_sb))
-+#define EXTN_I(inode) (&((inode)->u.extN_i))
++#define EXTN_SB(sb)   ((struct extN_sb_info *)&((sb)->u.generic_sbp))
++#define EXTN_I(inode) ((struct extN_inode_info *)&((inode)->u.generic_ip))
 +
 +#define EXTN_BLOCK_SIZE(s)            ((s)->s_blocksize)
 +#define EXTN_BLOCK_SIZE_BITS(s)               ((s)->s_blocksize_bits)
  #define EXTN_INODE_SIZE(s)    (((s)->s_rev_level == EXTN_GOOD_OLD_REV) ? \
                                 EXTN_GOOD_OLD_INODE_SIZE : \
                                 (s)->s_inode_size)
-@@ -108,6 +108,7 @@
+@@ -108,6 +110,7 @@
                                 EXTN_GOOD_OLD_FIRST_INO : \
                                 (s)->s_first_ino)
  #endif
  
  /*
   * Macro-instructions used to manage fragments
-@@ -116,36 +117,14 @@
+@@ -116,36 +119,14 @@
  #define       EXTN_MAX_FRAG_SIZE              4096
  #define EXTN_MIN_FRAG_LOG_SIZE                  10
  #ifdef __KERNEL__
   * Structure of a blocks group descriptor
   */
  struct extN_group_desc
-@@ -163,15 +142,13 @@
+@@ -163,15 +144,13 @@
  /*
   * Macro-instructions used to manage group descriptors
   */
  #endif
  
  /*
-@@ -339,12 +316,13 @@
+@@ -339,12 +318,13 @@
    #define EXTN_MOUNT_WRITEBACK_DATA   0x0C00  /* No data ordering */
  #define EXTN_MOUNT_UPDATE_JOURNAL     0x1000  /* Update the journal format */
  #define EXTN_MOUNT_NO_UID32           0x2000  /* Disable 32-bit UIDs */
                                         EXTN_MOUNT_##opt)
  #else
  #define EXT2_MOUNT_NOLOAD             EXTN_MOUNT_NOLOAD
-@@ -441,17 +419,11 @@
+@@ -441,17 +421,13 @@
  /*EC*/        __u32   s_reserved[197];        /* Padding to the end of the block */
  };
  
 +#define NEXT_ORPHAN(inode) EXTN_I(inode)->i_dtime
 +static inline struct inode *orphan_list_entry(struct list_head *l)
 +{
-+      return list_entry(l, struct inode, u.extN_i.i_orphan);
++      return ((struct inode *)((char *)l -
++              (unsigned long)(offsetof(struct inode, u.generic_ip) +
++                              offsetof(struct extN_inode_info, i_orphan))));
 +}
  
  /*
   * Codes for operating systems
-@@ -512,7 +484,7 @@
+@@ -512,7 +488,7 @@
  #define EXTN_FEATURE_INCOMPAT_RECOVER         0x0004 /* Needs recovery */
  #define EXTN_FEATURE_INCOMPAT_JOURNAL_DEV     0x0008 /* Journal device */
  
  #define EXTN_FEATURE_INCOMPAT_SUPP    (EXTN_FEATURE_INCOMPAT_FILETYPE| \
                                         EXTN_FEATURE_INCOMPAT_RECOVER)
  #define EXTN_FEATURE_RO_COMPAT_SUPP   (EXTN_FEATURE_RO_COMPAT_SPARSE_SUPER| \
-@@ -575,6 +547,24 @@
+@@ -575,6 +551,24 @@
  #define EXTN_DIR_ROUND                        (EXTN_DIR_PAD - 1)
  #define EXTN_DIR_REC_LEN(name_len)    (((name_len) + 8 + EXTN_DIR_ROUND) & \
                                         ~EXTN_DIR_ROUND)
  
  #ifdef __KERNEL__
  /*
-@@ -587,6 +577,24 @@
+@@ -587,6 +581,24 @@
        unsigned long block_group;
  };
  
  /*
   * Function prototypes
   */
-@@ -628,6 +636,7 @@
+@@ -628,6 +640,7 @@
  extern unsigned long extN_count_free (struct buffer_head *, unsigned);
  
  /* inode.c */
  extern struct buffer_head * extN_getblk (handle_t *, struct inode *, long, int, int *);
  extern struct buffer_head * extN_bread (handle_t *, struct inode *, int, int, int *);
  
---- extN/extN.orig-include/extN_jbd.h  Tue Sep 24 15:41:41 2002
-+++ include/linux/extN_jbd.h   Tue Sep 24 22:07:38 2002
+--- extN/extN-include.orig/extN_jbd.h  Wed Sep 25 11:51:34 2002
++++ include/linux/extN_jbd.h   Wed Sep 25 11:53:07 2002
 @@ -30,13 +30,19 @@
  
  #define EXTN_SINGLEDATA_TRANS_BLOCKS  8
        return 0;
  }
 --- /dev/null  Tue Aug  6 08:46:29 2002
-+++ include/linux/xattr.h      Tue Sep 24 21:43:47 2002
++++ include/linux/xattr.h      Wed Sep 25 11:51:34 2002
 @@ -0,0 +1,15 @@
 +/*
 +  File: linux/xattr.h
 +
 +#endif        /* _LINUX_XATTR_H */
 --- /dev/null  Tue Aug  6 08:46:29 2002
-+++ include/linux/extN_xattr.h Tue Sep 24 21:43:47 2002
++++ include/linux/extN_xattr.h Wed Sep 25 11:51:34 2002
 @@ -0,0 +1,155 @@
 +/*
 +  File: linux/extN_xattr.h
 +#endif  /* __KERNEL__ */
 +
 --- /dev/null  Tue Aug  6 08:46:29 2002
-+++ extN/xattr.c       Tue Sep 24 21:43:47 2002
++++ extN/xattr.c       Wed Sep 25 11:51:34 2002
 @@ -0,0 +1,1247 @@
 +/*
 + * linux/fs/extN/xattr.c