On Thursday, March 15, 2001 02:00:11 PM +0100 Andreas Klein <[EMAIL PROTECTED]> wrote: [ oops ] >>> EIP; c016f090 <comp_short_keys+10/40> <===== > Trace; c0160046 <reiserfs_iget+6a/a4> > Trace; c015c8a8 <reiserfs_lookup+94/c4> > > The machine is running linux-2.4.3-pre4 including the reiserfs-patches > from Alexander Zarochentcev. Ah, I see. objectid-sharing.diff will pass a null inode to comp_short_keys if iget4 returns a bad_inode. Looks like you were using NFS, you'll want to look through the docs on www.reiserfs.org for the additional patches required to make NFS and reiserfs play nice. The attached patch replaces objectid-sharing.diff. The bug was not present in pure 2.4.x or 2.4.x-ac kernels. -chris
--- diff/linux/fs/reiserfs/inode.c Thu Mar 15 09:47:18 2001 +++ linux/fs/reiserfs/inode.c Thu Mar 15 09:39:06 2001 @@ -1159,11 +1159,17 @@ if (!inode) return inode ; - // if (comp_short_keys (INODE_PKEY (inode), key)) { if (is_bad_inode (inode)) { reiserfs_warning ("vs-13048: reiserfs_iget: " "bad_inode. Stat data of (%lu %lu) not found\n", key->on_disk_key.k_dir_id, key->on_disk_key.k_objectid); + iput (inode); + inode = 0; + } else if (comp_short_keys (INODE_PKEY (inode), key)) { + reiserfs_warning ("vs-13049: reiserfs_iget: " + "Looking for (%lu %lu), found inode of (%lu %lu)\n", + key->on_disk_key.k_dir_id, key->on_disk_key.k_objectid, + INODE_PKEY (inode)->k_dir_id, INODE_PKEY +(inode)->k_objectid); iput (inode); inode = 0; }