[OpenAFS-devel] still seeing iput errors on 2.2.19...

Neulinger, Nathan nneul@umr.edu
Mon, 9 Apr 2001 08:23:49 -0500


They generally all look something like this. A patch had been put on not too
long ago that got rid of one of the places where this IPUT error was
generated. 

Here's the code in question from osi_misc.c:

void osi_iput(struct inode *ip)
{
    extern struct vfs *afs_globalVFS;

    AFS_GLOCK();
#if defined(AFS_LINUX24_ENV)
    if (atomic_read(&ip->i_count) == 0 || atomic_read(&ip->i_count) &
0xffff0000
) {
#else
    if (ip->i_count == 0 || ip->i_count & 0xffff0000) {
#endif
        osi_Panic("IPUT Bad refCount %d on inode 0x%x\n",
#if defined(AFS_LINUX24_ENV)
                  atomic_read(&ip->i_count), ip);
#else
                  ip->i_count, ip);
#endif
    }
    if (afs_globalVFS && afs_globalVFS == ip->i_sb ) {
#if defined(AFS_LINUX24_ENV)
        atomic_dec(&ip->i_count);
        if (!atomic_read(&ip->i_count))
#else
        ip->i_count --;
        if (!ip->i_count)
#endif
            osi_clear_inode(ip);
        AFS_GUNLOCK();
    }
    else { 
        AFS_GUNLOCK();
        iput(ip);
    }
}

What is the 0xffff0000? I don't see i_count being and'ed with anything like
that anywhere else in the kernel sources. Does afs have a 2^16-1 limit on
i_count or something like that?

Apr  8 19:42:44 htdig kernel: IPUT Bad refCount 65536 on inode 0xd0340a28 
Apr  8 19:42:44 htdig kernel: Unable to handle kernel paging request at
virtual address ffffffff 
Apr  8 19:42:44 htdig kernel: current->tss.cr3 = 098ab000, %cr3 = 098ab000 
Apr  8 19:42:44 htdig kernel: *pde = 00000000 
Apr  8 19:42:44 htdig kernel: Oops: 0002 
Apr  8 19:42:44 htdig kernel: CPU:    0 
Apr  8 19:42:44 htdig kernel: EIP:    0010:[<d029a948>] 
Using defaults from ksymoops -t elf32-i386 -a i386
Apr  8 19:42:44 htdig kernel: EFLAGS: 00010296 
Apr  8 19:42:44 htdig kernel: eax: 0000002c   ebx: d0340a28   ecx: ffffffff
edx: 0000003c 
Apr  8 19:42:44 htdig kernel: esi: d0340a28   edi: d0342b94   ebp: c98ade7c
esp: c98add9c 
Apr  8 19:42:44 htdig kernel: ds: 0018   es: 0018   ss: 0018 
Apr  8 19:42:44 htdig kernel: Process httpd (pid: 10886, process nr: 406,
stackpage=c98ad000) 
Apr  8 19:42:44 htdig kernel: Stack: d0340a28 d0340a28 00000001 00000001
6cce0019 d02a3817 d02b24a0 00010000  
Apr  8 19:42:44 htdig kernel:        d0340a28 d0340a28 cd322e00 d0342b94
cd322e00 d0284fb1 d0340a28 cd322e00  
Apr  8 19:42:44 htdig kernel:        00000002 cd322e00 00000001 d0342c40
00000001 c98ade2c d0342b94 d027ec66  
Apr  8 19:42:44 htdig kernel: Call Trace: [<d0340a28>] [<d0340a28>]
[<d02a3817>] [<d02b24a0>] [<d0340a28>] [<d0340a28>] [<d0342b94>]  
Apr  8 19:42:44 htdig kernel:        [<d0284fb1>] [<d0340a28>] [<d0342c40>]
[<d0342b94>] [<d027ec66>] [<d0340a28>] [<d0342b94>] [<d02a42b9>]  
Apr  8 19:42:44 htdig kernel:        [<d0342b94>] [<d0342b94>] [<d0342b94>]
[<d027e78e>] [<d0342b94>] [<d0340a28>] [<d0342b94>] [<d02a3891>]  
Apr  8 19:42:44 htdig kernel:        [<d0342b94>] [<d0340a28>] [<d0340a28>]
[<d02a50d5>] [prune_dcache+288/340] [cached_lookup+46/84]
[lookup_dentry+275/488] [<d02a5680
>]  
Apr  8 19:42:44 htdig kernel:        [<d02b327c>] [do_follow_link+76/132]
[lookup_dentry+351/488] [__namei+40/88] [sys_newstat+14/96]
[system_call+52/56]  
Apr  8 19:42:44 htdig kernel: Code: c6 05 ff ff ff ff 2a 83 c4 1c c3 90 b8
20 18 2b d0 eb d8 90  

>>EIP; d029a948 <[libafs-2.2.19]osi_Panic+20/34>   <=====
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d02a3817 <[libafs-2.2.19]osi_iput+23/5c>
Trace; d02b24a0 <[libafs-2.2.19]msg3.3+c49/fae>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d0284fb1 <[libafs-2.2.19]afs_lookup+1d5/e4c>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0342c40 <END_OF_CODE+81ba1/????>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d027ec66 <[libafs-2.2.19]afs_CopyOutAttrs+fe/1a0>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d02a42b9 <[libafs-2.2.19]vcache2inode+21/2c>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d027e78e <[libafs-2.2.19]afs_AccessOK+3a/158>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d02a3891 <[libafs-2.2.19]check_bad_parent+41/84>
Trace; d0342b94 <END_OF_CODE+81af5/????>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d0340a28 <END_OF_CODE+7f989/????>
Trace; d02a50d5 <[libafs-2.2.19]afs_linux_dentry_revalidate+49/a8>
Trace; d02b327c <[libafs-2.2.19]linux_cred_pool_lock+0/c>



------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216