diff -urN linux/arch/i386/boot/bootsect.S linux-2.3.5-work/arch/i386/boot/bootsect.S
--- linux/arch/i386/boot/bootsect.S	Wed Jun 24 22:30:08 1998
+++ linux-2.3.5-work/arch/i386/boot/bootsect.S	Mon Jun  7 15:50:56 1999
@@ -58,12 +58,12 @@
 	mov	ds,ax
 	mov	ax,#INITSEG
 	mov	es,ax
-	mov	cx,#256
+	mov	cx,#128
 	sub	si,si
 	sub	di,di
 	cld
 	rep
-	movsw
+	movsd
 	jmpi	go,INITSEG
 
 ! ax and es already contain INITSEG
diff -urN linux/fs/adfs/super.c linux-2.3.5-work/fs/adfs/super.c
--- linux/fs/adfs/super.c	Fri Mar 26 21:57:41 1999
+++ linux-2.3.5-work/fs/adfs/super.c	Mon Jun  7 15:11:12 1999
@@ -300,7 +300,7 @@
 	 */
 	sb->s_op = &adfs_sops;
 	sb->u.adfs_sb.s_root = adfs_inode_generate(dr->root, 0);
-	sb->s_root = d_alloc_root(iget(sb, sb->u.adfs_sb.s_root), NULL);
+	sb->s_root = d_alloc_root(iget(sb, sb->u.adfs_sb.s_root));
 
 	if (!sb->s_root) {
 		for (i = 0; i < sb->u.adfs_sb.s_map_size; i++)
@@ -312,8 +312,7 @@
 	return sb;
 
 error_free_bh:
-	if (bh)
-		brelse(bh);
+	brelse(bh);
 error_unlock:
 	unlock_super(sb);
 error_dec_use:
diff -urN linux/fs/affs/super.c linux-2.3.5-work/fs/affs/super.c
--- linux/fs/affs/super.c	Sun Mar  7 23:25:23 1999
+++ linux-2.3.5-work/fs/affs/super.c	Mon Jun  7 15:15:02 1999
@@ -543,7 +543,7 @@
 	root_inode = iget(s,root_block);
 	if (!root_inode)
 		goto out_no_root;
-	s->s_root  = d_alloc_root(root_inode, NULL);
+	s->s_root  = d_alloc_root(root_inode);
 	if (!s->s_root)
 		goto out_no_root;
 	s->s_root->d_op = &affs_dentry_operations;
diff -urN linux/fs/autofs/inode.c linux-2.3.5-work/fs/autofs/inode.c
--- linux/fs/autofs/inode.c	Mon Jan 11 23:03:30 1999
+++ linux-2.3.5-work/fs/autofs/inode.c	Mon Jun  7 15:15:28 1999
@@ -176,7 +176,7 @@
 	 * Get the root inode and dentry, but defer checking for errors.
 	 */
 	root_inode = iget(s, AUTOFS_ROOT_INO);
-	root = d_alloc_root(root_inode, NULL);
+	root = d_alloc_root(root_inode);
 	pipe = NULL;
 
 	/*
diff -urN linux/fs/buffer.c linux-2.3.5-work/fs/buffer.c
--- linux/fs/buffer.c	Fri May 14 07:18:20 1999
+++ linux-2.3.5-work/fs/buffer.c	Mon Jun  7 15:22:04 1999
@@ -90,7 +90,7 @@
 /* The dummy values in this structure are left in there for compatibility
  * with old programs that play with the /proc entries.
  */
-union bdflush_param{
+union bdflush_param {
 	struct {
 		int nfract;  /* Percentage of buffer cache dirty to 
 				activate bdflush */
@@ -847,7 +847,7 @@
 	wait_on_buffer(bh);
 	if (buffer_uptodate(bh))
 		return bh;
-	brelse(bh);
+	__brelse(bh);
 	return NULL;
 }
 
@@ -913,7 +913,7 @@
 	wait_on_buffer(bh);
 	if (buffer_uptodate(bh))
 		return bh;
-	brelse(bh);
+	__brelse(bh);
 	return NULL;
 }
 
diff -urN linux/fs/coda/inode.c linux-2.3.5-work/fs/coda/inode.c
--- linux/fs/coda/inode.c	Thu Mar 11 01:03:52 1999
+++ linux-2.3.5-work/fs/coda/inode.c	Mon Jun  7 15:15:40 1999
@@ -115,7 +115,7 @@
 	printk("coda_read_super: rootinode is %ld dev %d\n", 
 	       root->i_ino, root->i_dev);
 	sbi->sbi_root = root;
-	sb->s_root = d_alloc_root(root, NULL);
+	sb->s_root = d_alloc_root(root);
 	unlock_super(sb);
 	EXIT;  
         return sb;
diff -urN linux/fs/dcache.c linux-2.3.5-work/fs/dcache.c
--- linux/fs/dcache.c	Mon Apr 26 07:17:56 1999
+++ linux-2.3.5-work/fs/dcache.c	Mon Jun  7 15:15:59 1999
@@ -546,7 +546,7 @@
 	entry->d_inode = inode;
 }
 
-struct dentry * d_alloc_root(struct inode * root_inode, struct dentry *old_root)
+struct dentry * d_alloc_root(struct inode * root_inode)
 {
 	struct dentry *res = NULL;
 
diff -urN linux/fs/devpts/inode.c linux-2.3.5-work/fs/devpts/inode.c
--- linux/fs/devpts/inode.c	Wed Jun  2 07:25:47 1999
+++ linux-2.3.5-work/fs/devpts/inode.c	Mon Jun  7 15:16:13 1999
@@ -163,7 +163,7 @@
 	 * Get the root inode and dentry, but defer checking for errors.
 	 */
 	root_inode = iget(s, 1); /* inode 1 == root directory */
-	root = d_alloc_root(root_inode, NULL);
+	root = d_alloc_root(root_inode);
 
 	/*
 	 * Check whether somebody else completed the super block.
diff -urN linux/fs/efs/super.c linux-2.3.5-work/fs/efs/super.c
--- linux/fs/efs/super.c	Wed May 26 17:35:00 1999
+++ linux-2.3.5-work/fs/efs/super.c	Mon Jun  7 15:16:28 1999
@@ -204,7 +204,7 @@
 	}
 	s->s_op   = &efs_superblock_operations;
 	s->s_dev  = dev;
-	s->s_root = d_alloc_root(iget(s, EFS_ROOTINODE), NULL);
+	s->s_root = d_alloc_root(iget(s, EFS_ROOTINODE));
 	unlock_super(s);
  
 	if (!(s->s_root)) {
diff -urN linux/fs/ext2/super.c linux-2.3.5-work/fs/ext2/super.c
--- linux/fs/ext2/super.c	Mon Apr 12 18:03:45 1999
+++ linux-2.3.5-work/fs/ext2/super.c	Mon Jun  7 15:16:40 1999
@@ -629,7 +629,7 @@
 	 */
 	sb->s_dev = dev;
 	sb->s_op = &ext2_sops;
-	sb->s_root = d_alloc_root(iget(sb, EXT2_ROOT_INO), NULL);
+	sb->s_root = d_alloc_root(iget(sb, EXT2_ROOT_INO));
 	if (!sb->s_root) {
 		sb->s_dev = 0;
 		for (i = 0; i < db_count; i++)
diff -urN linux/fs/fat/inode.c linux-2.3.5-work/fs/fat/inode.c
--- linux/fs/fat/inode.c	Fri May 14 07:18:20 1999
+++ linux-2.3.5-work/fs/fat/inode.c	Mon Jun  7 15:16:53 1999
@@ -650,7 +650,7 @@
 	root_inode->i_ino = MSDOS_ROOT_INO;
 	fat_read_root(root_inode);
 	insert_inode_hash(root_inode);
-	sb->s_root = d_alloc_root(root_inode, NULL);
+	sb->s_root = d_alloc_root(root_inode);
 	if (!sb->s_root)
 		goto out_no_root;
 	if(i>=0) {
diff -urN linux/fs/hfs/super.c linux-2.3.5-work/fs/hfs/super.c
--- linux/fs/hfs/super.c	Wed May 12 21:26:20 1999
+++ linux-2.3.5-work/fs/hfs/super.c	Mon Jun  7 15:17:08 1999
@@ -466,7 +466,7 @@
 	if (!root_inode) 
 		goto bail_no_root;
 	  
-	s->s_root = d_alloc_root(root_inode, NULL);
+	s->s_root = d_alloc_root(root_inode);
 	if (!s->s_root) 
 		goto bail_no_root;
 
diff -urN linux/fs/hpfs/super.c linux-2.3.5-work/fs/hpfs/super.c
--- linux/fs/hpfs/super.c	Wed Jun  2 07:25:47 1999
+++ linux-2.3.5-work/fs/hpfs/super.c	Mon Jun  7 15:17:22 1999
@@ -528,7 +528,7 @@
 	brelse(bh0);
 
 	hpfs_lock_iget(s, 1);
-	s->s_root = d_alloc_root(iget(s, s->s_hpfs_root), NULL);
+	s->s_root = d_alloc_root(iget(s, s->s_hpfs_root));
 	hpfs_unlock_iget(s);
 	unlock_super(s);
 	if (!s->s_root || !s->s_root->d_inode) {
diff -urN linux/fs/isofs/inode.c linux-2.3.5-work/fs/isofs/inode.c
--- linux/fs/isofs/inode.c	Wed May 26 18:01:43 1999
+++ linux-2.3.5-work/fs/isofs/inode.c	Mon Jun  7 15:17:37 1999
@@ -835,7 +835,7 @@
 	if (!inode->i_op)
 		goto out_bad_root;
 	/* get the root dentry */
-	s->s_root = d_alloc_root(inode, NULL);
+	s->s_root = d_alloc_root(inode);
 	if (!(s->s_root))
 		goto out_no_root;
 
diff -urN linux/fs/minix/bitmap.c linux-2.3.5-work/fs/minix/bitmap.c
--- linux/fs/minix/bitmap.c	Tue Oct 20 22:08:14 1998
+++ linux-2.3.5-work/fs/minix/bitmap.c	Mon Jun  7 15:22:42 1999
@@ -140,7 +140,7 @@
 	if (!ino || ino > inode->i_sb->u.minix_sb.s_ninodes) {
 		printk("Bad inode number on dev %s: %d is out of range\n",
 		       kdevname(inode->i_dev), ino);
-		return 0;
+		return NULL;
 	}
 	block = (2 + inode->i_sb->u.minix_sb.s_imap_blocks +
 		 inode->i_sb->u.minix_sb.s_zmap_blocks +
@@ -148,7 +148,7 @@
 	bh = bread(inode->i_dev, block, BLOCK_SIZE);
 	if (!bh) {
 		printk("unable to read i-node block\n");
-		return 0;
+		return NULL;
 	}
 	raw_inode = ((struct minix_inode *)bh->b_data +
 		     (ino - 1) % MINIX_INODES_PER_BLOCK);
@@ -168,7 +168,7 @@
 	if (!ino || ino > inode->i_sb->u.minix_sb.s_ninodes) {
 		printk("Bad inode number on dev %s: %d is out of range\n",
 		       kdevname(inode->i_dev), ino);
-		return 0;
+		return NULL;
 	}
 	block = (2 + inode->i_sb->u.minix_sb.s_imap_blocks +
 		 inode->i_sb->u.minix_sb.s_zmap_blocks +
@@ -176,7 +176,7 @@
 	bh = bread(inode->i_dev, block, BLOCK_SIZE);
 	if (!bh) {
 		printk("unable to read i-node block\n");
-		return 0;
+		return NULL;
 	}
 	raw_inode = ((struct minix2_inode *) bh->b_data +
 		     (ino - 1) % MINIX2_INODES_PER_BLOCK);
diff -urN linux/fs/minix/inode.c linux-2.3.5-work/fs/minix/inode.c
--- linux/fs/minix/inode.c	Wed May 12 07:01:41 1999
+++ linux-2.3.5-work/fs/minix/inode.c	Tue Jun  8 07:46:03 1999
@@ -266,7 +266,7 @@
 	if (errmsg)
 		goto out_bad_root;
 
-	s->s_root = d_alloc_root(root_inode, NULL);
+	s->s_root = d_alloc_root(root_inode);
 	if (!s->s_root)
 		goto out_iput;
 
diff -urN linux/fs/minix/namei.c linux-2.3.5-work/fs/minix/namei.c
--- linux/fs/minix/namei.c	Sun May 16 07:43:05 1999
+++ linux-2.3.5-work/fs/minix/namei.c	Mon Jun  7 15:23:15 1999
@@ -184,12 +184,7 @@
 			dir->i_size = block*bh->b_size + offset;
 			mark_inode_dirty(dir);
 		}
-		if (de->inode) {
-			if (namecompare(namelen, info->s_namelen, name, de->name)) {
-				brelse(bh);
-				return -EEXIST;
-			}
-		} else {
+		if (!de->inode) {
 			dir->i_mtime = dir->i_ctime = CURRENT_TIME;
 			mark_inode_dirty(dir);
 			for (i = 0; i < info->s_namelen ; i++)
diff -urN linux/fs/ncpfs/inode.c linux-2.3.5-work/fs/ncpfs/inode.c
--- linux/fs/ncpfs/inode.c	Fri May 14 20:43:00 1999
+++ linux-2.3.5-work/fs/ncpfs/inode.c	Mon Jun  7 15:18:02 1999
@@ -431,7 +431,7 @@
         if (!root_inode)
 		goto out_no_root;
 	DPRINTK(KERN_DEBUG "ncp_read_super: root vol=%d\n", NCP_FINFO(root_inode)->volNumber);
-        server->root_dentry = sb->s_root = d_alloc_root(root_inode, NULL);
+        server->root_dentry = sb->s_root = d_alloc_root(root_inode);
         if (!sb->s_root)
 		goto out_no_root;
 	server->root_dentry->d_op = &ncp_dentry_operations;
diff -urN linux/fs/nfs/inode.c linux-2.3.5-work/fs/nfs/inode.c
--- linux/fs/nfs/inode.c	Wed May 12 07:01:41 1999
+++ linux-2.3.5-work/fs/nfs/inode.c	Mon Jun  7 15:18:25 1999
@@ -302,7 +302,7 @@
 	root_inode = __nfs_fhget(sb, &fattr);
 	if (!root_inode)
 		goto out_no_root;
-	sb->s_root = d_alloc_root(root_inode, NULL);
+	sb->s_root = d_alloc_root(root_inode);
 	if (!sb->s_root)
 		goto out_no_root;
 	sb->s_root->d_op = &nfs_dentry_operations;
diff -urN linux/fs/nfsd/export.c linux-2.3.5-work/fs/nfsd/export.c
--- linux/fs/nfsd/export.c	Wed May 12 07:07:46 1999
+++ linux-2.3.5-work/fs/nfsd/export.c	Mon Jun  7 15:24:35 1999
@@ -168,9 +168,8 @@
 					}
 				} while (NULL != (exp = exp->ex_next));
 		} while (nfsd_parentdev(&xdev));
-		if (xdentry == xdentry->d_parent) {
+		if (IS_ROOT(xdentry))
 			break;
-		}
 	} while ((xdentry = xdentry->d_parent));
 	exp = NULL;
 out:
@@ -204,7 +203,7 @@
 #endif
 						goto out;
 					}
-					if (ndentry == ndentry->d_parent)
+					if (IS_ROOT(ndentry))
 						break;
 				}
 		} while (NULL != (exp = exp->ex_next));
diff -urN linux/fs/nfsd/nfsfh.c linux-2.3.5-work/fs/nfsd/nfsfh.c
--- linux/fs/nfsd/nfsfh.c	Fri May 14 07:18:21 1999
+++ linux-2.3.5-work/fs/nfsd/nfsfh.c	Mon Jun  7 15:25:22 1999
@@ -436,7 +436,7 @@
 		dir = iget(sb, dirino);
 		if (!dir)
 			goto out_root;
-		dentry = d_alloc_root(dir, NULL);
+		dentry = d_alloc_root(dir);
 		if (!dentry)
 			goto out_iput;
 
@@ -531,7 +531,7 @@
 	 * Add the parent to the dir cache before releasing the dentry,
 	 * and check whether to save a copy of the dentry's path.
 	 */
-	if (dentry != dentry->d_parent) {
+	if (!IS_ROOT(dentry)) {
 		struct dentry *parent = dget(dentry->d_parent);
 		if (add_to_fhcache(parent, NFSD_DIR_CACHE))
 			nfsd_nr_verified++;
@@ -1140,7 +1140,7 @@
 				error = nfserr_stale;
 dprintk("fh_verify: no root_squashed access.\n");
 			}
-		} while ((tdentry != tdentry->d_parent));
+		} while (!IS_ROOT(tdentry));
 		if (exp->ex_dentry != tdentry) {
 			error = nfserr_stale;
 			printk("nfsd Security: %s/%s bad export.\n",
diff -urN linux/fs/ntfs/fs.c linux-2.3.5-work/fs/ntfs/fs.c
--- linux/fs/ntfs/fs.c	Sat Apr 24 05:20:38 1999
+++ linux-2.3.5-work/fs/ntfs/fs.c	Mon Jun  7 15:18:54 1999
@@ -978,7 +978,7 @@
 
 	ntfs_debug(DEBUG_OTHER, "Getting RootDir\n");
 	/* Get the root directory */
-	if(!(sb->s_root=d_alloc_root(iget(sb,FILE_ROOT),NULL))){
+	if(!(sb->s_root=d_alloc_root(iget(sb,FILE_ROOT)))){
 		ntfs_error("Could not get root dir inode\n");
 		goto ntfs_read_super_mft;
 	}
diff -urN linux/fs/pipe.c linux-2.3.5-work/fs/pipe.c
--- linux/fs/pipe.c	Tue May 11 22:37:40 1999
+++ linux-2.3.5-work/fs/pipe.c	Mon Jun  7 15:19:39 1999
@@ -486,7 +486,7 @@
 	j = error;
 
 	error = -ENOMEM;
-	f1->f_dentry = f2->f_dentry = dget(d_alloc_root(inode, NULL));
+	f1->f_dentry = f2->f_dentry = dget(d_alloc_root(inode));
 	if (!f1->f_dentry)
 		goto close_f12_inode_i_j;
 
diff -urN linux/fs/proc/inode.c linux-2.3.5-work/fs/proc/inode.c
--- linux/fs/proc/inode.c	Sat May  9 02:10:30 1998
+++ linux-2.3.5-work/fs/proc/inode.c	Mon Jun  7 15:19:55 1999
@@ -319,7 +319,7 @@
 	root_inode = proc_get_inode(s, PROC_ROOT_INO, &proc_root);
 	if (!root_inode)
 		goto out_no_root;
-	s->s_root = d_alloc_root(root_inode, NULL);
+	s->s_root = d_alloc_root(root_inode);
 	if (!s->s_root)
 		goto out_no_root;
 	parse_options(data, &root_inode->i_uid, &root_inode->i_gid);
diff -urN linux/fs/proc/link.c linux-2.3.5-work/fs/proc/link.c
--- linux/fs/proc/link.c	Tue Apr 13 00:18:26 1999
+++ linux-2.3.5-work/fs/proc/link.c	Mon Jun  7 15:25:51 1999
@@ -146,7 +146,7 @@
 	/* Check for special dentries.. */
 	pattern = NULL;
 	inode = dentry->d_inode;
-	if (inode && dentry->d_parent == dentry) {
+	if (inode && IS_ROOT(dentry)) {
 		if (S_ISSOCK(inode->i_mode))
 			pattern = "socket:[%lu]";
 		if (S_ISFIFO(inode->i_mode))
diff -urN linux/fs/qnx4/inode.c linux-2.3.5-work/fs/qnx4/inode.c
--- linux/fs/qnx4/inode.c	Wed Jun  2 07:25:47 1999
+++ linux-2.3.5-work/fs/qnx4/inode.c	Mon Jun  7 15:20:08 1999
@@ -338,7 +338,7 @@
 	s->u.qnx4_sb.sb_buf = bh;
 	s->u.qnx4_sb.sb = (struct qnx4_super_block *) bh->b_data;
 	s->s_root =
-	    d_alloc_root(iget(s, QNX4_ROOT_INO * QNX4_INODES_PER_BLOCK), NULL);
+	    d_alloc_root(iget(s, QNX4_ROOT_INO * QNX4_INODES_PER_BLOCK));
 	if (s->s_root == NULL) {
 		printk("qnx4: get inode failed\n");
 		goto out;
diff -urN linux/fs/romfs/inode.c linux-2.3.5-work/fs/romfs/inode.c
--- linux/fs/romfs/inode.c	Sat Apr 24 05:20:38 1999
+++ linux-2.3.5-work/fs/romfs/inode.c	Mon Jun  7 15:20:24 1999
@@ -132,7 +132,7 @@
 	brelse(bh);
 
 	s->s_op	= &romfs_ops;
-	s->s_root = d_alloc_root(iget(s, sz), NULL);
+	s->s_root = d_alloc_root(iget(s, sz));
 
 	if (!s->s_root)
 		goto outnobh;
diff -urN linux/fs/smbfs/dir.c linux-2.3.5-work/fs/smbfs/dir.c
--- linux/fs/smbfs/dir.c	Sun May  9 01:56:37 1999
+++ linux-2.3.5-work/fs/smbfs/dir.c	Mon Jun  7 15:26:07 1999
@@ -318,7 +318,7 @@
 	for (;;)
 	{
 		dentry->d_time = jiffies;
-		if (dentry == dentry->d_parent)
+		if (IS_ROOT(dentry))
 			break;
 		dentry = dentry->d_parent;
 	}
diff -urN linux/fs/smbfs/inode.c linux-2.3.5-work/fs/smbfs/inode.c
--- linux/fs/smbfs/inode.c	Fri May 14 01:16:22 1999
+++ linux-2.3.5-work/fs/smbfs/inode.c	Mon Jun  7 15:20:36 1999
@@ -402,7 +402,7 @@
 	if (!root_inode)
 		goto out_no_root;
 
-	sb->s_root = d_alloc_root(root_inode, NULL);
+	sb->s_root = d_alloc_root(root_inode);
 	if (!sb->s_root)
 		goto out_no_root;
 
diff -urN linux/fs/super.c linux-2.3.5-work/fs/super.c
--- linux/fs/super.c	Sun May 16 07:43:04 1999
+++ linux-2.3.5-work/fs/super.c	Mon Jun  7 15:27:18 1999
@@ -169,20 +169,20 @@
 
 int register_filesystem(struct file_system_type * fs)
 {
-        struct file_system_type ** tmp;
+	struct file_system_type ** tmp;
 
-        if (!fs)
-                return -EINVAL;
-        if (fs->next)
-                return -EBUSY;
-        tmp = &file_systems;
-        while (*tmp) {
-                if (strcmp((*tmp)->name, fs->name) == 0)
-                        return -EBUSY;
-                tmp = &(*tmp)->next;
-        }
-        *tmp = fs;
-        return 0;
+	if (!fs)
+		return -EINVAL;
+	if (fs->next)
+		return -EBUSY;
+	tmp = &file_systems;
+	while (*tmp) {
+		if (strcmp((*tmp)->name, fs->name) == 0)
+			return -EBUSY;
+		tmp = &(*tmp)->next;
+	}
+	*tmp = fs;
+	return 0;
 }
 
 #ifdef CONFIG_MODULES
diff -urN linux/fs/sysv/inode.c linux-2.3.5-work/fs/sysv/inode.c
--- linux/fs/sysv/inode.c	Thu May 13 18:53:59 1999
+++ linux-2.3.5-work/fs/sysv/inode.c	Mon Jun  7 15:20:49 1999
@@ -503,7 +503,7 @@
 	sb->s_dev = dev;
 	sb->s_op = &sysv_sops;
 	root_inode = iget(sb,SYSV_ROOT_INO);
-	sb->s_root = d_alloc_root(root_inode, NULL);
+	sb->s_root = d_alloc_root(root_inode);
 	if (!sb->s_root) {
 		printk("SysV FS: get root inode failed\n");
 		sysv_put_super(sb);
diff -urN linux/fs/ufs/super.c linux-2.3.5-work/fs/ufs/super.c
--- linux/fs/ufs/super.c	Mon Apr 12 18:03:45 1999
+++ linux-2.3.5-work/fs/ufs/super.c	Mon Jun  7 15:21:01 1999
@@ -746,7 +746,7 @@
 	sb->u.ufs_sb.s_flags = flags;
 	sb->u.ufs_sb.s_swab = swab;
 	 	                                                          
-	sb->s_root = d_alloc_root(iget(sb, UFS_ROOTINO), NULL);
+	sb->s_root = d_alloc_root(iget(sb, UFS_ROOTINO));
 
 
 	/*
diff -urN linux/fs/umsdos/check.c linux-2.3.5-work/fs/umsdos/check.c
--- linux/fs/umsdos/check.c	Fri Dec 18 15:09:36 1998
+++ linux-2.3.5-work/fs/umsdos/check.c	Mon Jun  7 15:27:39 1999
@@ -212,7 +212,7 @@
 	
 	while (dentry && count < 10) {
 		check_dent_int (dentry, count++);
-		if (dentry == dentry->d_parent) {
+		if (IS_ROOT(dentry)) {
 			printk (KERN_DEBUG "*** end checking dentry (root reached ok)\n");
 			break;
 		}
diff -urN linux/include/linux/dcache.h linux-2.3.5-work/include/linux/dcache.h
--- linux/include/linux/dcache.h	Sun May  9 01:56:37 1999
+++ linux-2.3.5-work/include/linux/dcache.h	Mon Jun  7 15:30:27 1999
@@ -12,8 +12,6 @@
  * with heavy changes by Linus Torvalds
  */
 
-#define D_MAXLEN 1024
-
 #define IS_ROOT(x) ((x) == (x)->d_parent)
 
 /*
@@ -132,7 +130,7 @@
 extern void d_delete(struct dentry *);
 
 /* allocate/de-allocate */
-extern struct dentry * d_alloc(struct dentry * parent, const struct qstr *name);
+extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
 extern void prune_dcache(int);
 extern void shrink_dcache_sb(struct super_block *);
 extern void shrink_dcache_parent(struct dentry *);
@@ -147,7 +145,7 @@
 extern void free_inode_memory(int);	/* defined in fs/inode.c */
 
 /* only used at mount-time */
-extern struct dentry * d_alloc_root(struct inode * root_inode, struct dentry * old_root);
+extern struct dentry * d_alloc_root(struct inode *);
 
 /* test whether root is busy without destroying dcache */
 extern int is_root_busy(struct dentry *);
@@ -155,7 +153,7 @@
 /*
  * This adds the entry to the hash queues.
  */
-extern void d_rehash(struct dentry * entry);
+extern void d_rehash(struct dentry *);
 /*
  * This adds the entry to the hash queues and initializes "d_inode".
  * The entry was actually filled in earlier during "d_alloc()"
@@ -167,17 +165,16 @@
 }
 
 /* used for rename() and baskets */
-extern void d_move(struct dentry * entry, struct dentry * newdentry);
+extern void d_move(struct dentry *, struct dentry *);
 
 /* appendix may either be NULL or be used for transname suffixes */
-extern struct dentry * d_lookup(struct dentry * dir, struct qstr * name);
+extern struct dentry * d_lookup(struct dentry *, struct qstr *);
 
 /* validate "insecure" dentry pointer */
-extern int d_validate(struct dentry *dentry, struct dentry *dparent,
-		      unsigned int hash, unsigned int len);
+extern int d_validate(struct dentry *, struct dentry *, unsigned int, unsigned int);
 
 /* write full pathname into buffer and return start of pathname */
-extern char * d_path(struct dentry * entry, char * buf, int buflen);
+extern char * d_path(struct dentry *, char *, int);
 
 /* Allocation counts.. */
 static __inline__ struct dentry * dget(struct dentry *dentry)
diff -urN linux/include/linux/file.h linux-2.3.5-work/include/linux/file.h
--- linux/include/linux/file.h	Sun Jan 10 03:16:44 1999
+++ linux-2.3.5-work/include/linux/file.h	Mon Jun  7 16:54:04 1999
@@ -44,7 +44,7 @@
 /*
  * Install a file pointer in the fd array.
  */
-extern inline void fd_install(unsigned int fd, struct file *file)
+extern inline void fd_install(unsigned int fd, struct file * file)
 {
 	current->files->fd[fd] = file;
 }
@@ -65,7 +65,7 @@
  * I suspect there are many other similar "optimizations" across the
  * kernel...
  */
-extern void fput(struct file *file); 
-extern void put_filp(struct file *file);
+extern void fput(struct file *); 
+extern void put_filp(struct file *);
 
-#endif
+#endif /* __LINUX_FILE_H */
diff -urN linux/include/linux/fs.h linux-2.3.5-work/include/linux/fs.h
--- linux/include/linux/fs.h	Wed Jun  2 21:54:54 1999
+++ linux-2.3.5-work/include/linux/fs.h	Mon Jun  7 17:12:35 1999
@@ -103,7 +103,8 @@
 /*
  * Flags that can be altered by MS_REMOUNT
  */
-#define MS_RMT_MASK (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME|MS_NODIRATIME)
+#define MS_RMT_MASK	(MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|\
+			MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME|MS_NODIRATIME)
 
 /*
  * Magic mount flag number. Has to be or-ed to the flag values.
@@ -112,7 +113,7 @@
 #define MS_MGC_MSK 0xffff0000	/* magic flag number mask */
 
 /*
- * Note that read-only etc flags are inode-specific: setting some file-system
+ * Note that nosuid etc flags are inode-specific: setting some file-system
  * flags just means all the inodes inherit those flags by default. It might be
  * possible to override it selectively if you really wanted to with some
  * ioctl() that is not currently implemented.
@@ -171,9 +172,8 @@
 
 #include <asm/semaphore.h>
 #include <asm/byteorder.h>
-#include <asm/bitops.h>
 
-extern void update_atime (struct inode *inode);
+extern void update_atime (struct inode *);
 #define UPDATE_ATIME(inode) update_atime (inode)
 
 extern void buffer_init(unsigned long);
@@ -233,8 +233,7 @@
 };
 
 typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
-void init_buffer(struct buffer_head *bh, kdev_t dev, int block,
-		 bh_end_io_t *handler, void *dev_id);
+void init_buffer(struct buffer_head *, kdev_t, int, bh_end_io_t *, void *);
 
 static inline int buffer_uptodate(struct buffer_head * bh)
 {
@@ -480,19 +479,17 @@
 
 #include <linux/fcntl.h>
 
-extern int fcntl_getlk(unsigned int fd, struct flock *l);
-extern int fcntl_setlk(unsigned int fd, unsigned int cmd, struct flock *l);
+extern int fcntl_getlk(unsigned int, struct flock *);
+extern int fcntl_setlk(unsigned int, unsigned int, struct flock *);
 
 /* fs/locks.c */
-extern void locks_remove_posix(struct file *, fl_owner_t id);
+extern void locks_remove_posix(struct file *, fl_owner_t);
 extern void locks_remove_flock(struct file *);
 extern struct file_lock *posix_test_lock(struct file *, struct file_lock *);
 extern int posix_lock_file(struct file *, struct file_lock *, unsigned int);
 extern void posix_block_lock(struct file_lock *, struct file_lock *);
 extern void posix_unblock_lock(struct file_lock *);
 
-#include <linux/stat.h>
-
 struct fasync_struct {
 	int    magic;
 	int    fa_fd;
@@ -667,10 +664,8 @@
 #define FLOCK_VERIFY_READ  1
 #define FLOCK_VERIFY_WRITE 2
 
-extern int locks_mandatory_locked(struct inode *inode);
-extern int locks_mandatory_area(int read_write, struct inode *inode,
-				struct file *filp, loff_t offset,
-				size_t count);
+extern int locks_mandatory_locked(struct inode *);
+extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
 
 extern inline int locks_verify_locked(struct inode *inode)
 {
@@ -709,35 +704,35 @@
 extern struct file *filp_open(const char *, int, int);
 extern int filp_close(struct file *, fl_owner_t id);
 
-extern char * getname(const char * filename);
+extern char * getname(const char *);
 #define __getname()	((char *) __get_free_page(GFP_KERNEL))
 #define putname(name)	free_page((unsigned long)(name))
 
-extern void kill_fasync(struct fasync_struct *fa, int sig);
+extern void kill_fasync(struct fasync_struct *, int);
 extern int register_blkdev(unsigned int, const char *, struct file_operations *);
-extern int unregister_blkdev(unsigned int major, const char * name);
-extern int blkdev_open(struct inode * inode, struct file * filp);
-extern int blkdev_release (struct inode * inode);
+extern int unregister_blkdev(unsigned int, const char *);
+extern int blkdev_open(struct inode *, struct file *);
+extern int blkdev_release (struct inode *);
 extern struct file_operations def_blk_fops;
 extern struct inode_operations blkdev_inode_operations;
 
 /* fs/devices.c */
 extern int register_chrdev(unsigned int, const char *, struct file_operations *);
-extern int unregister_chrdev(unsigned int major, const char * name);
-extern int chrdev_open(struct inode * inode, struct file * filp);
+extern int unregister_chrdev(unsigned int, const char *);
+extern int chrdev_open(struct inode *, struct file *);
 extern struct file_operations def_chr_fops;
 extern struct inode_operations chrdev_inode_operations;
-extern char * bdevname(kdev_t dev);
-extern char * cdevname(kdev_t dev);
-extern char * kdevname(kdev_t dev);
+extern char * bdevname(kdev_t);
+extern char * cdevname(kdev_t);
+extern char * kdevname(kdev_t);
 extern void init_special_inode(struct inode *, umode_t, int);
 
-extern void init_fifo(struct inode * inode);
+extern void init_fifo(struct inode *);
 extern struct inode_operations fifo_inode_operations;
 
 /* Invalid inode operations -- fs/bad_inode.c */
-extern void make_bad_inode(struct inode * inode);
-extern int is_bad_inode(struct inode * inode);
+extern void make_bad_inode(struct inode *);
+extern int is_bad_inode(struct inode *);
 
 extern struct file_operations connecting_fifo_fops;
 extern struct file_operations read_fifo_fops;
@@ -747,15 +742,15 @@
 extern struct file_operations write_pipe_fops;
 extern struct file_operations rdwr_pipe_fops;
 
-extern struct file_system_type *get_fs_type(const char *name);
+extern struct file_system_type *get_fs_type(const char *);
 
 extern int fs_may_remount_ro(struct super_block *);
-extern int fs_may_mount(kdev_t dev);
+extern int fs_may_mount(kdev_t);
 
 extern struct file *inuse_filps;
 
-extern void refile_buffer(struct buffer_head * buf);
-extern void set_writetime(struct buffer_head * buf, int flag);
+extern void refile_buffer(struct buffer_head *);
+extern void set_writetime(struct buffer_head *, int);
 extern int try_to_free_buffers(struct page *);
 
 extern int nr_buffers;
@@ -767,7 +762,7 @@
 #define BUF_DIRTY	2	/* Dirty buffers, not yet scheduled for write */
 #define NR_LIST		3
 
-void mark_buffer_uptodate(struct buffer_head * bh, int on);
+void mark_buffer_uptodate(struct buffer_head *, int);
 
 extern inline void mark_buffer_clean(struct buffer_head * bh)
 {
@@ -786,23 +781,23 @@
 	}
 }
 
-extern int check_disk_change(kdev_t dev);
-extern int invalidate_inodes(struct super_block * sb);
+extern int check_disk_change(kdev_t);
+extern int invalidate_inodes(struct super_block *);
 extern void invalidate_inode_pages(struct inode *);
-extern void invalidate_buffers(kdev_t dev);
-extern int floppy_is_wp(int minor);
-extern void sync_inodes(kdev_t dev);
-extern void write_inode_now(struct inode *inode);
-extern void sync_dev(kdev_t dev);
-extern int fsync_dev(kdev_t dev);
-extern void sync_supers(kdev_t dev);
-extern int bmap(struct inode * inode,int block);
+extern void invalidate_buffers(kdev_t);
+extern int floppy_is_wp(int);
+extern void sync_inodes(kdev_t);
+extern void write_inode_now(struct inode *);
+extern void sync_dev(kdev_t);
+extern int fsync_dev(kdev_t);
+extern void sync_supers(kdev_t);
+extern int bmap(struct inode *, int);
 extern int notify_change(struct dentry *, struct iattr *);
-extern int permission(struct inode * inode,int mask);
-extern int get_write_access(struct inode *inode);
-extern void put_write_access(struct inode *inode);
-extern struct dentry * open_namei(const char * pathname, int flag, int mode);
-extern struct dentry * do_mknod(const char * filename, int mode, dev_t dev);
+extern int permission(struct inode *, int);
+extern int get_write_access(struct inode *);
+extern void put_write_access(struct inode *);
+extern struct dentry * open_namei(const char *, int, int);
+extern struct dentry * do_mknod(const char *, int, dev_t);
 extern int do_pipe(int *);
 
 /* fs/dcache.c -- generic fs support functions */
@@ -840,7 +835,7 @@
 #define lnamei(pathname)	__namei(pathname, 0)
 
 extern void iput(struct inode *);
-extern struct inode * igrab(struct inode *inode);
+extern struct inode * igrab(struct inode *);
 extern ino_t iunique(struct super_block *, ino_t);
 extern struct inode * iget(struct super_block *, unsigned long);
 extern void clear_inode(struct inode *);
@@ -851,7 +846,7 @@
 extern struct file * get_empty_filp(void);
 extern struct buffer_head * get_hash_table(kdev_t, int, int);
 extern struct buffer_head * getblk(kdev_t, int, int);
-extern struct buffer_head * find_buffer(kdev_t dev, int block, int size);
+extern struct buffer_head * find_buffer(kdev_t, int, int);
 extern void ll_rw_block(int, int, struct buffer_head * bh[]);
 extern int is_read_only(kdev_t);
 extern void __brelse(struct buffer_head *);
@@ -860,17 +855,16 @@
 	if (buf)
 		__brelse(buf);
 }
-extern void __bforget(struct buffer_head *buf);
+extern void __bforget(struct buffer_head *);
 extern inline void bforget(struct buffer_head *buf)
 {
 	if (buf)
 		__bforget(buf);
 }
-extern void set_blocksize(kdev_t dev, int size);
-extern unsigned int get_hardblocksize(kdev_t dev);
-extern struct buffer_head * bread(kdev_t dev, int block, int size);
-extern struct buffer_head * breada(kdev_t dev,int block, int size, 
-				   unsigned int pos, unsigned int filesize);
+extern void set_blocksize(kdev_t, int);
+extern unsigned int get_hardblocksize(kdev_t);
+extern struct buffer_head * bread(kdev_t, int, int);
+extern struct buffer_head * breada(kdev_t, int, int, unsigned int, unsigned int);
 
 extern int brw_page(int, struct page *, kdev_t, int [], int, int);
 
@@ -879,12 +873,12 @@
 extern int generic_readpage(struct file *, struct page *);
 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
 extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *);
-extern ssize_t generic_file_write(struct file *, const char*, size_t, loff_t *, writepage_t);
+extern ssize_t generic_file_write(struct file *, const char *, size_t, loff_t *, writepage_t);
 
-extern struct super_block *get_super(kdev_t dev);
-extern void put_super(kdev_t dev);
-unsigned long generate_cluster(kdev_t dev, int b[], int size);
-unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size);
+extern struct super_block *get_super(kdev_t);
+extern void put_super(kdev_t);
+unsigned long generate_cluster(kdev_t, int b[], int);
+unsigned long generate_cluster_swab32(kdev_t, int b[], int);
 extern kdev_t ROOT_DEV;
 
 extern void show_buffers(void);
@@ -892,7 +886,7 @@
 
 #ifdef CONFIG_BLK_DEV_INITRD
 extern kdev_t real_root_dev;
-extern int change_root(kdev_t new_root_dev,const char *put_old);
+extern int change_root(kdev_t, const char *);
 #endif
 
 extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
@@ -902,8 +896,8 @@
 extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
 extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);
 
-extern int block_fsync(struct file *, struct dentry *dir);
-extern int file_fsync(struct file *, struct dentry *dir);
+extern int block_fsync(struct file *, struct dentry *);
+extern int file_fsync(struct file *, struct dentry *);
 
 extern int inode_change_ok(struct inode *, struct iattr *);
 extern void inode_setattr(struct inode *, struct iattr *);
@@ -914,4 +908,4 @@
 
 #endif /* __KERNEL__ */
 
-#endif
+#endif /* _LINUX_FS_H */
diff -urN linux/include/linux/sched.h linux-2.3.5-work/include/linux/sched.h
--- linux/include/linux/sched.h	Wed Jun  2 21:54:59 1999
+++ linux-2.3.5-work/include/linux/sched.h	Mon Jun  7 17:12:35 1999
@@ -163,9 +163,9 @@
 #define AVL_MIN_MAP_COUNT	32
 
 struct mm_struct {
-	struct vm_area_struct *mmap;		/* list of VMAs */
-	struct vm_area_struct *mmap_avl;	/* tree of VMAs */
-	struct vm_area_struct *mmap_cache;	/* last find_vma result */
+	struct vm_area_struct * mmap;		/* list of VMAs */
+	struct vm_area_struct * mmap_avl;	/* tree of VMAs */
+	struct vm_area_struct * mmap_cache;	/* last find_vma result */
 	pgd_t * pgd;
 	atomic_t count;
 	int map_count;				/* number of VMAs */
@@ -453,8 +453,8 @@
 }
 
 /* per-UID process charging. */
-extern int alloc_uid(struct task_struct *p);
-void free_uid(struct task_struct *p);
+extern int alloc_uid(struct task_struct *);
+void free_uid(struct task_struct *);
 
 #include <asm/current.h>
 
@@ -482,26 +482,25 @@
 #define wake_up(x)			__wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
 #define wake_up_interruptible(x)	__wake_up((x),TASK_INTERRUPTIBLE)
 
-extern int in_group_p(gid_t grp);
+extern int in_group_p(gid_t);
 
 extern void flush_signals(struct task_struct *);
 extern void flush_signal_handlers(struct task_struct *);
-extern int dequeue_signal(sigset_t *block, siginfo_t *);
-extern int send_sig_info(int, struct siginfo *info, struct task_struct *);
-extern int force_sig_info(int, struct siginfo *info, struct task_struct *);
-extern int kill_pg_info(int, struct siginfo *info, pid_t);
-extern int kill_sl_info(int, struct siginfo *info, pid_t);
-extern int kill_proc_info(int, struct siginfo *info, pid_t);
-extern int kill_something_info(int, struct siginfo *info, int);
-extern void notify_parent(struct task_struct * tsk, int);
-extern void force_sig(int sig, struct task_struct * p);
-extern int send_sig(int sig, struct task_struct * p, int priv);
+extern int dequeue_signal(sigset_t *, siginfo_t *);
+extern int send_sig_info(int, struct siginfo *, struct task_struct *);
+extern int force_sig_info(int, struct siginfo *, struct task_struct *);
+extern int kill_pg_info(int, struct siginfo *, pid_t);
+extern int kill_sl_info(int, struct siginfo *, pid_t);
+extern int kill_proc_info(int, struct siginfo *, pid_t);
+extern int kill_something_info(int, struct siginfo *, int);
+extern void notify_parent(struct task_struct *, int);
+extern void force_sig(int, struct task_struct *);
+extern int send_sig(int, struct task_struct *, int);
 extern int kill_pg(pid_t, int, int);
 extern int kill_sl(pid_t, int, int);
 extern int kill_proc(pid_t, int, int);
-extern int do_sigaction(int sig, const struct k_sigaction *act,
-			struct k_sigaction *oact);
-extern int do_sigaltstack(const stack_t *ss, stack_t *oss, unsigned long sp);
+extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *);
+extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
 
 extern inline int signal_pending(struct task_struct *p)
 {
@@ -552,12 +551,10 @@
 		: on_sig_stack(sp) ? SS_ONSTACK : 0);
 }
 
-extern int request_irq(unsigned int irq,
+extern int request_irq(unsigned int,
 		       void (*handler)(int, void *, struct pt_regs *),
-		       unsigned long flags, 
-		       const char *device,
-		       void *dev_id);
-extern void free_irq(unsigned int irq, void *dev_id);
+		       unsigned long, const char *, void *);
+extern void free_irq(unsigned int, void *);
 
 /*
  * This has now become a routine instead of a macro, it sets a flag if
diff -urN linux/kernel/ksyms.c linux-2.3.5-work/kernel/ksyms.c
--- linux/kernel/ksyms.c	Wed May 26 17:30:42 1999
+++ linux-2.3.5-work/kernel/ksyms.c	Mon Jun  7 17:07:09 1999
@@ -345,7 +345,7 @@
 
 /* Program loader interfaces */
 EXPORT_SYMBOL(setup_arg_pages);
-EXPORT_SYMBOL(copy_strings);
+EXPORT_SYMBOL(copy_strings_kernel);
 EXPORT_SYMBOL(do_execve);
 EXPORT_SYMBOL(flush_old_exec);
 EXPORT_SYMBOL(open_dentry);
diff -urN linux/net/socket.c linux-2.3.5-work/net/socket.c
--- linux/net/socket.c	Tue May 25 21:06:35 1999
+++ linux-2.3.5-work/net/socket.c	Mon Jun  7 15:21:38 1999
@@ -204,7 +204,7 @@
 			return -ENFILE;
 		}
 
-		file->f_dentry = d_alloc_root(inode, NULL);
+		file->f_dentry = d_alloc_root(inode);
 		if (!file->f_dentry) {
 			put_filp(file);
 			put_unused_fd(fd);
