On Fri, 24 Nov 2000, Mohammad A. Haque wrote:

> I got the error while I was compiling XFree86 4 CVS and kernel. So
> that's what I've been doing in multiples along witha couple otehr things
> thrown inthe mix to generate lots of disk i/o.

Error messages would be interesting... So far we have _both_ 2.95 and 2.91
involved, raid and non-raid alike. Just fscking peachy... OK, let's try
to eliminate ext2 changes (if that helps we have a big problem somewhere,
but that's at least something):

patch -p1 -R <<EOF
--- rc11-pre5/fs/ext2/ialloc.c  Wed Oct  4 03:44:54 2000
+++ rc11-pre6/fs/ext2/ialloc.c  Fri Nov 17 02:23:19 2000
@@ -274,15 +274,13 @@
                return NULL;
        }
 
-       inode = get_empty_inode ();
+       sb = dir->i_sb;
+       inode = new_inode(sb);
        if (!inode) {
                *err = -ENOMEM;
                return NULL;
        }
 
-       sb = dir->i_sb;
-       inode->i_sb = sb;
-       inode->i_flags = 0;
        lock_super (sb);
        es = sb->u.ext2_sb.s_es;
 repeat:
@@ -430,9 +428,6 @@
        mark_buffer_dirty(sb->u.ext2_sb.s_sbh);
        sb->s_dirt = 1;
        inode->i_mode = mode;
-       inode->i_sb = sb;
-       inode->i_nlink = 1;
-       inode->i_dev = sb->s_dev;
        inode->i_uid = current->fsuid;
        if (test_opt (sb, GRPID))
                inode->i_gid = dir->i_gid;
EOF

Notice that if reverting that change stops the fs corruption we _still_
have a problem - the only case when it could help is if something touches
an inode allocated by get_empty_inode() before it gets included into the
hash.

BTW, folks, while we are looking at the configurations - how about highmem
and SMP vs. UP?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to