diff -crt linux/fs/Config.in linux.patched/fs/Config.in
*** linux/fs/Config.in	Sun Dec  1 08:58:05 1996
--- linux.patched/fs/Config.in	Fri Apr 11 16:33:07 1997
***************
*** 9,14 ****
--- 9,18 ----
  tristate 'Minix fs support' CONFIG_MINIX_FS
  tristate 'Extended fs support' CONFIG_EXT_FS
  tristate 'Second extended fs support' CONFIG_EXT2_FS
+ if [ "$CONFIG_EXT2_FS" = "y" ]; then
+         bool 'AFS server support'   CONFIG_AFS_SERVER
+ fi
+ 
  tristate 'xiafs filesystem support' CONFIG_XIA_FS
  
  # msdos filesystems
diff -crt linux/fs/ext2/inode.c linux.patched/fs/ext2/inode.c
*** linux/fs/ext2/inode.c	Sat Nov 30 05:21:20 1996
--- linux.patched/fs/ext2/inode.c	Fri Apr 11 16:27:07 1997
***************
*** 560,565 ****
--- 560,570 ----
          inode->u.ext2_i.i_block_group = block_group;
          inode->u.ext2_i.i_next_alloc_block = 0;
          inode->u.ext2_i.i_next_alloc_goal = 0;
+ #ifdef CONFIG_AFS_SERVER
+         inode->u.ext2_i.i_vicep1 = raw_inode->osd1.linux1.l_i_reserved1;
+         inode->u.ext2_i.i_vicep2 = raw_inode->osd2.linux2.l_i_reserved2[0];
+         inode->u.ext2_i.i_vicep3 = raw_inode->osd2.linux2.l_i_reserved2[1];
+ #endif
          if (inode->u.ext2_i.i_prealloc_count)
                  ext2_error (inode->i_sb, "ext2_read_inode",
                              "New inode has non-zero prealloc count!");
***************
*** 653,658 ****
--- 658,668 ----
          raw_inode->i_file_acl = inode->u.ext2_i.i_file_acl;
          raw_inode->i_dir_acl = inode->u.ext2_i.i_dir_acl;
          raw_inode->i_version = inode->u.ext2_i.i_version;
+ #ifdef CONFIG_AFS_SERVER
+         raw_inode->osd1.linux1.l_i_reserved1 = inode->u.ext2_i.i_vicep1;
+         raw_inode->osd2.linux2.l_i_reserved2[0] = inode->u.ext2_i.i_vicep2;
+         raw_inode->osd2.linux2.l_i_reserved2[1] = inode->u.ext2_i.i_vicep3;
+ #endif
          if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
                  raw_inode->i_block[0] = kdev_t_to_nr(inode->i_rdev);
          else for (block = 0; block < EXT2_N_BLOCKS; block++)
diff -crt linux/include/linux/ext2_fs_i.h linux.patched/include/linux/ext2_fs_i.h
*** linux/include/linux/ext2_fs_i.h	Sat May  4 03:06:18 1996
--- linux.patched/include/linux/ext2_fs_i.h	Fri Apr 11 16:27:30 1997
***************
*** 16,21 ****
--- 16,22 ----
  #ifndef _LINUX_EXT2_FS_I
  #define _LINUX_EXT2_FS_I
  
+ #include <linux/config.h>
  /*
   * second extended file system inode data in memory
   */
***************
*** 35,40 ****
--- 36,47 ----
          __u32   i_next_alloc_goal;
          __u32   i_prealloc_block;
          __u32   i_prealloc_count;
+ #ifdef CONFIG_AFS_SERVER
+         __u32   i_vicemagic;
+         __u32   i_vicep1;
+         __u32   i_vicep2;
+         __u32   i_vicep3;
+ #endif
          int     i_new_inode:1;  /* Is a freshly allocated inode */
  };
  
diff -crt linux/kernel/ksyms.c linux.patched/kernel/ksyms.c
*** linux/kernel/ksyms.c	Sat Nov 30 05:21:23 1996
--- linux.patched/kernel/ksyms.c	Fri Apr 11 16:26:17 1997
***************
*** 355,360 ****
--- 355,372 ----
          X(get_write_access),
          X(put_write_access),
  
+ #ifdef CONFIG_EXT2_FS
+ #ifdef CONFIG_AFS_SERVER
+         /* afs server compatibility */
+         X(get_empty_filp),
+         X(get_unused_fd),
+         X(put_unused_fd),
+         X(lookup_vfsmnt),
+         X(ext2_new_inode),
+         X(ext2_file_inode_operations),
+ #endif
+ #endif
+ 
          /********************************************************
           * Do not add anything below this line,
           * as the stacked modules depend on this!
