Yeah, that looks a bit cleaner than the patch I sent.

-- Nathan

> -----Original Message-----
> From: Chas Williams [mailto:[EMAIL PROTECTED]]
> Sent: Monday, April 16, 2001 1:29 PM
> To: Neulinger, Nathan
> Cc: '[EMAIL PROTECTED]'
> Subject: Re: [OpenAFS-devel] possible solution for iput issue... (also
> tra nsarc #60276) 
> 
> 
> In message 
> <[EMAIL PROTECTED]>,"Neul
> inger, Nathan" writes:
> >Actually no... every one that I've seen had avc == vcp. The 
> issue is that no
> >matter what happens, if it does the afs_lookup, i_count gets 
> incremented and
> >never decremented. 
> 
> i think i see what's going on here.  when the parent id is 
> possibly 'bad'
> (for whatever reason)  check_bad_parent does another lookup on the 
> entity.  this will create another reference to the inode 
> (avc).  and yes,
> no one releases this reference.  avc and vcp should be the same vnode,
> but that's only because afs uses a static inode cache, 
> otherwise you could
> think of avc as a new inode that never gets iput.  a likely 
> patch would be
> (i also took the liberty of adding a crfree which i think is missing):
> 
> 
> Index: osi_misc.c
> ===================================================================
> RCS file: /afs/cmf/project/cvsroot/openafs/src/afs/LINUX/osi_misc.c,v
> retrieving revision 1.8
> diff -u -r1.8 osi_misc.c
> --- osi_misc.c  2001/03/31 22:46:36     1.8
> +++ osi_misc.c  2001/04/16 18:15:03
> @@ -412,6 +413,9 @@
>                  ICL_TYPE_POINTER, avc,
>                  ICL_TYPE_POINTER, dp);
>      }
> +    if (avc)
> +       AFS_RELE(avc);
> +    crfree(credp);
>      
>    } /* if bad parent */
>   
> 
_______________________________________________
OpenAFS-devel mailing list
[EMAIL PROTECTED]
https://lists.openafs.org/mailman/listinfo.cgi/openafs-devel

Reply via email to