Re: possible partition corruption

From: Andrew Morton (akpm@digeo.com)
Date: Thu Feb 06 2003 - 16:23:46 EST


Thomas Molina <tmolina@cox.net> wrote:
>
> > Everything you describe is consistent with a kernel which does not have ext3
> > compiled into it.
> ...
> I'm aware of that.

In that case you may be experiencing the mysterious vanishing
ext3_read_super-doesn't-work bug. Usually a recompile/relink makes it go
away. I haven't seen it in months.

Could you please drop this additional debugging in there and see
what happens?

 fs/ext3/super.c | 34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 deletions(-)

diff -puN fs/ext3/super.c~efs fs/ext3/super.c
--- 25/fs/ext3/super.c~efs Thu Feb 6 13:17:55 2003
+++ 25-akpm/fs/ext3/super.c Thu Feb 6 13:21:16 2003
@@ -1017,12 +1017,16 @@ static int ext3_fill_super (struct super
         int i;
         int needs_recovery;
 
+ printk("%s: enter\n", __FUNCTION__);
+
 #ifdef CONFIG_JBD_DEBUG
         ext3_ro_after = 0;
 #endif
         sbi = kmalloc(sizeof(*sbi), GFP_KERNEL);
- if (!sbi)
+ if (!sbi) {
+ printk("no sbi\n");
                 return -ENOMEM;
+ }
         sb->s_fs_info = sbi;
         memset(sbi, 0, sizeof(*sbi));
         sbi->s_mount_opt = 0;
@@ -1057,10 +1061,10 @@ static int ext3_fill_super (struct super
         sbi->s_es = es;
         sb->s_magic = le16_to_cpu(es->s_magic);
         if (sb->s_magic != EXT3_SUPER_MAGIC) {
- if (!silent)
- printk(KERN_ERR
- "VFS: Can't find ext3 filesystem on dev %s.\n",
- sb->s_id);
+ printk(KERN_ERR
+ "VFS: Can't find ext3 filesystem on dev %s.\n",
+ sb->s_id);
+ printk("magic=0x%x\n", sb->s_magic);
                 goto failed_mount;
         }
         
@@ -1091,8 +1095,10 @@ static int ext3_fill_super (struct super
         sbi->s_resuid = le16_to_cpu(es->s_def_resuid);
         sbi->s_resgid = le16_to_cpu(es->s_def_resgid);
 
- if (!parse_options ((char *) data, sbi, &journal_inum, 0))
+ if (!parse_options ((char *) data, sbi, &journal_inum, 0)) {
+ printk("option parsing failed\n");
                 goto failed_mount;
+ }
 
         sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                 ((sbi->s_mount_opt & EXT3_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
@@ -1276,16 +1282,19 @@ static int ext3_fill_super (struct super
          */
         if (!test_opt(sb, NOLOAD) &&
             EXT3_HAS_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_HAS_JOURNAL)) {
- if (ext3_load_journal(sb, es))
+ if (ext3_load_journal(sb, es)) {
+ printk("journal loading failed\n");
                         goto failed_mount2;
+ }
         } else if (journal_inum) {
- if (ext3_create_journal(sb, es, journal_inum))
+ if (ext3_create_journal(sb, es, journal_inum)) {
+ printk("journal creation failed\n");
                         goto failed_mount2;
+ }
         } else {
- if (!silent)
- printk (KERN_ERR
- "ext3: No journal on filesystem on %s\n",
- sb->s_id);
+ printk (KERN_ERR
+ "ext3: No journal on filesystem on %s\n",
+ sb->s_id);
                 goto failed_mount2;
         }
 
@@ -1371,6 +1380,7 @@ failed_mount:
 out_fail:
         sb->s_fs_info = NULL;
         kfree(sbi);
+ printk("%s: failing\n", __FUNCTION__);
         return -EINVAL;
 }
 

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Feb 07 2003 - 22:00:22 EST