Re: [linux-lvm] EXT2-fs panic (device lvm(58,0)):

From: Stephen C. Tweedie (sct@redhat.com)
Date: Thu Mar 22 2001 - 20:39:14 EST


Hi,

On Wed, Mar 07, 2001 at 01:35:05PM -0700, Andreas Dilger wrote:

> The only remote possibility is in ext2_free_blocks() if block+count
> overflows a 32-bit unsigned value. Only 2 places call ext2_free_blocks()
> with a count != 1, and ext2_free_data() looks to be OK. The other
> possibility is that i_prealloc_count is bogus - that is it! Nowhere
> is i_prealloc_count initialized to zero AFAICS.
>
Did you ever push this to Alan and/or Linus? This looks pretty
important!

Cheers,
 Stephen

> ==========================================================================
> diff -ru linux/fs/ext2/ialloc.c.orig linux/fs/ext2/ialloc.c
> --- linux/fs/ext2/ialloc.c.orig Fri Dec 8 18:35:54 2000
> +++ linux/fs/ext2/ialloc.c Wed Mar 7 12:22:11 2001
> @@ -432,6 +444,8 @@
> inode->u.ext2_i.i_file_acl = 0;
> inode->u.ext2_i.i_dir_acl = 0;
> inode->u.ext2_i.i_dtime = 0;
> + inode->u.ext2_i.i_prealloc_count = 0;
> inode->u.ext2_i.i_block_group = i;
> if (inode->u.ext2_i.i_flags & EXT2_SYNC_FL)
> inode->i_flags |= S_SYNC;
> diff -ru linux/fs/ext2/inode.c.orig linux/fs/ext2/inode.c
> --- linux/fs/ext2/inode.c.orig Tue Jan 16 01:29:29 2001
> +++ linux/fs/ext2/inode.c Wed Mar 7 12:05:47 2001
> @@ -1048,6 +1038,8 @@
> (((__u64)le32_to_cpu(raw_inode->i_size_high)) << 32);
> }
> inode->i_generation = le32_to_cpu(raw_inode->i_generation);
> + inode->u.ext2_i.i_prealloc_count = 0;
> inode->u.ext2_i.i_block_group = block_group;
>
> /*
-
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 Mar 23 2001 - 21:00:19 EST