On Mon, 2005-03-14 at 22:49 +0100, Christian Kujau wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Christian wrote:
> > i have a lot runs of mkfs.jfs in front of me, i'll if i can trigger the
> > oops again and let you know.
>
> there we go, but it's tainted again. i have to reboot anyway (jfs module
> is stuck) and will have an untainted kernel then:
>
> http://nerdbynature.de/bits/prinz/2.6.11-gentoo-r3/jfs/jfs.oops.2
>
> i've run fsck.jfs right after the oops, but i had to use "-f", the fs
> itsself is clean:
>
> http://nerdbynature.de/bits/prinz/2.6.11-gentoo-r3/jfs/fsck.jfs_run.log
>
>
> background: i've setup a script, which will benchmark serveral
> filesystems, several benchmarks suites, and even with crypto enabled.
> the last run has just finished and /dev/loop/5 was still attached to
> /dev/hde4 (loop-aes):
>
> $ losetup -a
> /dev/loop/5: [000b]:12248 (/dev/hde4) encryption=AES128 multi-key-v3
>
> without detaching the loop-device i was going to "mkfs.jfs /dev/hde4":
>
> - ---------------------
> mkfs.jfs version 1.1.7, 22-Jul-2004
> \
>
> Format completed successfully.
>
> 4899888 kilobytes total disk space.
> bin/bench.sh: line 108: 1098 Segmentation fault $DEBUG mount -v
> $MOUNTOPTIONS -t "$i" "$1" "$DIR"
> Something went wrong upon benchmarking jfs-bonnie
> Killed
> - ---------------------
>
> ...but "mount -t jfs -o noatime,integrity /dev/hde4 /mnt/bench" failed, as
> shown by the segfault and the oops.
>
> i guess it would be saner to detach the loop-device from its device
> backend first, but i have to say: "it works with other filesystems" ;-)
>
> i'll try again.
Can you please apply this patch and build with OONFIG_JFS_DEBUG set?
Then if you see it again, it may shed some light on this. It seems jfs
isn't reading the file system correctly, but I don't know why it
shouldn't.
> thanks,
> Christian.
Thanks,
Shaggy
--
David Kleikamp
IBM Linux Technology Center
diff -urp linux-2.6.11/fs/jfs/jfs_dmap.c linux/fs/jfs/jfs_dmap.c
--- linux-2.6.11/fs/jfs/jfs_dmap.c 2005-03-02 01:38:25.000000000 -0600
+++ linux/fs/jfs/jfs_dmap.c 2005-03-16 10:12:57.000000000 -0600
@@ -285,10 +285,10 @@ int dbUnmount(struct inode *ipbmap, int
/*
* Sanity Check
*/
- for (i = 0; i < bmp->db_numag; i++)
- if (atomic_read(&bmp->db_active[i]))
- printk(KERN_ERR "dbUnmount: db_active[%d] = %d\n",
- i, atomic_read(&bmp->db_active[i]));
+ if (bmp->db_numag > MAXAG) {
+ printk(KERN_ERR "JFS: db_numag = 0x%x\n", bmap->db_numag);
+ dump_mem("bmp", bmp, 64);
+ }
/* free the memory for the in-memory bmap. */
kfree(bmp);