diff -r -c no-ifs-linux-118/config.in linux/config.in *** no-ifs-linux-118/config.in Thu Apr 21 22:41:45 1994 --- linux/config.in Mon Apr 25 20:59:58 1994 *************** *** 103,108 **** --- 103,109 ---- bool 'NFS filesystem support' CONFIG_NFS_FS y bool 'ISO9660 cdrom filesystem support' CONFIG_ISO9660_FS n bool 'OS/2 HPFS filesystem support (read only)' CONFIG_HPFS_FS n + bool 'Inheriting filesystem (IFS) support' CONFIG_IFS_FS y bool 'System V and Coherent filesystem support' CONFIG_SYSV_FS n comment 'character devices' diff -r -c no-ifs-linux-118/fs/Makefile linux/fs/Makefile *** no-ifs-linux-118/fs/Makefile Tue Dec 21 04:30:23 1993 --- linux/fs/Makefile Sat Apr 23 22:27:05 1994 *************** *** 7,13 **** # # Note 2! The CFLAGS definitions are now in the main makefile... ! SUBDIRS = minix ext ext2 msdos proc isofs nfs xiafs hpfs sysv ifdef CONFIG_MINIX_FS FS_SUBDIRS := $(FS_SUBDIRS) minix --- 7,13 ---- # # Note 2! The CFLAGS definitions are now in the main makefile... ! SUBDIRS = minix ext ext2 msdos proc isofs nfs xiafs ifs hpfs sysv ifdef CONFIG_MINIX_FS FS_SUBDIRS := $(FS_SUBDIRS) minix *************** *** 35,40 **** --- 35,43 ---- endif ifdef CONFIG_SYSV_FS FS_SUBDIRS := $(FS_SUBDIRS) sysv + endif + ifdef CONFIG_IFS_FS + FS_SUBDIRS := $(FS_SUBDIRS) ifs endif ifdef CONFIG_HPFS_FS FS_SUBDIRS := $(FS_SUBDIRS) hpfs diff -r -c no-ifs-linux-118/fs/filesystems.c linux/fs/filesystems.c *** no-ifs-linux-118/fs/filesystems.c Thu Apr 21 22:38:53 1994 --- linux/fs/filesystems.c Sat Apr 23 23:12:52 1994 *************** *** 19,24 **** --- 19,27 ---- #include #include #include + #ifdef CONFIG_IFS_FS + #include + #endif extern void device_setup(void); *************** *** 87,92 **** --- 90,100 ---- #ifdef CONFIG_HPFS_FS register_filesystem(&(struct file_system_type) {hpfs_read_super, "hpfs", 1, NULL}); + #endif + + #ifdef CONFIG_IFS_FS + register_filesystem(&(struct file_system_type) + {ifs_read_super, "ifs", 1, NULL}); #endif mount_root(); diff -r -c no-ifs-linux-118/fs/super.c linux/fs/super.c *** no-ifs-linux-118/fs/super.c Thu Apr 21 22:38:54 1994 --- linux/fs/super.c Sun Apr 24 00:04:40 1994 *************** *** 489,495 **** if (!fstype) return -ENODEV; t = fstype->name; ! if (fstype->requires_dev) { retval = namei(dev_name,&inode); if (retval) return retval; --- 489,495 ---- if (!fstype) return -ENODEV; t = fstype->name; ! if (fstype->requires_dev && strcmp(t,"ifs")) { retval = namei(dev_name,&inode); if (retval) return retval; diff -r -c no-ifs-linux-118/include/linux/fs.h linux/include/linux/fs.h *** no-ifs-linux-118/include/linux/fs.h Thu Apr 21 22:38:54 1994 --- linux/include/linux/fs.h Sat Apr 23 22:16:12 1994 *************** *** 160,165 **** --- 160,166 ---- #include #include #include + #include #include struct inode { *************** *** 204,214 **** --- 205,218 ---- struct iso_inode_info isofs_i; struct nfs_inode_info nfs_i; struct xiafs_inode_info xiafs_i; + struct ifs_inode_info ifs_i; struct sysv_inode_info sysv_i; void * generic_ip; } u; }; + #include + struct file { mode_t f_mode; dev_t f_rdev; /* needed for /dev/tty */ *************** *** 219,224 **** --- 223,231 ---- struct file *f_next, *f_prev; struct inode * f_inode; struct file_operations * f_op; + union { + struct ifs_file_info ifs_f; + } u; }; struct file_lock { *************** *** 240,245 **** --- 247,253 ---- #include #include #include + #include #include struct super_block { *************** *** 265,270 **** --- 273,279 ---- struct isofs_sb_info isofs_sb; struct nfs_sb_info nfs_sb; struct xiafs_sb_info xiafs_sb; + struct ifs_sb_info ifs_sb; struct sysv_sb_info sysv_sb; void *generic_sbp; } u;